Szerezze meg az IP-cím földrajzi helymeghatározási adatait a Bashban Linux alatt
Néha gyorsan meg kell szereznie egy IP-cím földrajzi helyadatait. Linux alatt a konzolalkalmazások erejével időt takaríthat meg, és gyorsan lekérheti ezeket az információkat. Lássuk, hogyan lehet megcsinálni.
Hirdetés
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 fogom használni, a jq-t:
Nagyon könnyű és gyors.
Esetünkben a lekérdezés a következő legyen:
http://freegeoip.net/json/119.94.116.145
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 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:
becsavar http://freegeoip.net/json/119.94.116.145|jq
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:
becsavar http://freegeoip.net/json/119.94.116.145|jq -r '.ország_neve,.szélesség,.hosszúság'
Ezt a parancsot a következő shell-szkriptként mentheti:
#!/bin/sh. curl -s http://freegeoip.net/json/$1|jq -r '.ország_neve,.szélesség,.hosszúság'
Amikor legközelebb földrajzi helyadatokra van szüksége, a következőképpen hajthatja végre a szkriptet:
./geo.sh IP_cím
Ez az.