Egy adott IP-cím földrajzi helyadatainak megszerzéséhez valamilyen online szolgáltatást kell használnia, amely biztosítja a megfelelő API-t. Célszerű valamilyen közszolgáltatást igénybe venni az engedélyezési eljárás és az API-kulcskezelés elkerülése érdekében. Az egyik ilyen szolgáltatás az FreeGeoIP.net.
Nyilvános HTTP API-t biztosít az IP-címek földrajzi helyének kereséséhez. A városokhoz társított IP-címek adatbázisát használja, valamint egyéb releváns információkat, például időzónát, szélességi és hosszúsági fokot. Ez nagyon hasznos.
A szolgáltatás JSON vagy XML formátumban nyújthat keresési eredményeket. Tehát, ha egyesítjük a curl-t valamilyen JSON elemzővel, megkapjuk a szükséges információkat.
A kedvenc JSON-elemzőmet, a jq-t fogom használni:
Nagyon könnyű és gyors.
Esetünkben a lekérdezés a következő legyen:
|_+_|A „json” rész itt a kívánt adatformátum. A JSON mellett lehet XML vagy CSV.
Futtassuk le a lekérdezést curl-lel, és nézzük meg a kimenetet:
Az eredmény egy nyers JSON-kimenet, amelyet nehéz olvasni. Az eredményhalmaz megjelenésének javításához használjuk a jq eszközt. Kombináld a göndörítéssel az alábbiak szerint:
|_+_|A kimenet könnyebben olvasható lesz:
A jq használatával szűrheti a kimenetet, és csak a szükséges mezőket jelenítheti meg. A következő parancs csak az ország nevét, szélességi és hosszúsági fokát jeleníti meg:
|_+_|Ezt a parancsot a következő shell-szkriptként mentheti:
|_+_|Amikor legközelebb földrajzi helyadatokat kell beszereznie, a következőképpen hajthatja végre a szkriptet:
|_+_|Ez az.