Hankige Linuxi Bashi IP-aadressi geolokatsiooniteave
Mõnikord peate kiiresti hankima IP-aadressi geograafilise asukoha teabe. Linuxis saate aja säästmiseks ja selle teabe kiireks hankimiseks kasutada konsoolirakenduste võimsust. Vaatame, kuidas seda teha saab.
Konkreetse IP-aadressi geograafilise asukoha teabe saamiseks peate kasutama mõnda võrguteenust, mis pakub sobivat API-d. Autoriseerimisprotseduuri ja API võtmehalduse vältimiseks on hea mõte kasutada mõnda avalikku teenust. Üks selline teenus on FreeGeoIP.net.
See pakub avalikku HTTP API-d IP-aadresside geograafilise asukoha otsimiseks. See kasutab linnadega seotud IP-aadresside andmebaasi koos muu asjakohase teabega, nagu ajavöönd, laius- ja pikkuskraad. See on väga kasulik.
Teenus võib pakkuda otsingutulemusi JSON- või XML-vormingus. Seega, kui ühendame curl'i mõne JSON-parseriga, saame vajaliku teabe.
Kasutan oma lemmik JSON-parserit jq:
Meie puhul peaks päring olema järgmine:
http://freegeoip.net/json/119.94.116.145
"Json" osa on siin soovitud andmevorming. Lisaks JSON-ile võib see olla XML või CSV.
Käivitame päringu curl'iga ja vaatame väljundit:
lokk http://freegeoip.net/json/119.94.116.145|jq
Väljundit on lihtsam lugeda:
jq abil saate väljundit filtreerida ja panna see näitama ainult nõutavaid välju. Järgmine käsk kuvab ainult riigi nime, laius- ja pikkuskraadi:
lokk http://freegeoip.net/json/119.94.116.145|jq -r '.riigi_nimi,.laiuskraad,.pikkuskraad'
#!/bin/sh. curl -s http://freegeoip.net/json/$1|jq -r '.riigi_nimi,.laiuskraad,.pikkuskraad'
Järgmine kord, kui vajate geograafilise asukoha teavet, saate oma skripti käivitada järgmiselt.
./geo.sh IP_aadress
See on kõik.