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 curli mõne JSON-parseriga, saame vajaliku teabe.
Kasutan oma lemmik JSON-parserit jq:
See on väga kerge ja kiire.
Meie puhul peaks päring olema järgmine:
|_+_|Siin olev json-osa on soovitud andmevorming. Lisaks JSON-ile võib see olla XML või CSV.
Käivitame päringu curl-iga ja vaatame väljundit:
Tulemuseks on töötlemata JSON-väljund, mida on raske lugeda. Tulemuste komplekti välimuse parandamiseks kasutame jq tööriista. Kombineerige see lokkidega järgmiselt:
|_+_|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:
|_+_|Saate selle käsu salvestada järgmise shelliskriptina:
|_+_|Järgmine kord, kui vajate geograafilise asukoha teavet, saate oma skripti käivitada järgmiselt.
|_+_|See on kõik.