For å få informasjon om geografisk plassering om en spesifikk IP-adresse, må du bruke en nettjeneste som gir riktig API. Det er en god idé å bruke noen offentlige tjenester for å unngå autorisasjonsprosedyren og API-nøkkeladministrasjonen. En slik tjeneste er FreeGeoIP.net.
Den gir en offentlig HTTP API for å søke etter geolokalisering av IP-adresser. Den bruker en database med IP-adresser som er knyttet til byer sammen med annen relevant informasjon som tidssone, breddegrad og lengdegrad. Dette er veldig nyttig.
Tjenesten kan gi søkeresultater som JSON eller XML. Så hvis vi kombinerer curl med en JSON-parser, kan vi få den nødvendige informasjonen.
Jeg vil bruke min favoritt JSON-parser, jq:
Den er veldig lett og rask.
For vårt tilfelle bør spørringen være som følger:
|_+_|'Json'-delen her er det ønskede dataformatet. Foruten JSON kan det være XML eller CSV.
La oss kjøre spørringen med curl og se utdataene:
Resultatet er rå JSON-utdata som er vanskelig å lese. For å forbedre utseendet til resultatsettet, la oss bruke jq-verktøyet. Kombiner den med krøll som følger:
|_+_|Utdataene vil være lettere å lese:
Ved å bruke jq kan du filtrere utdataene og få det til å vise bare de nødvendige feltene. Følgende kommando viser kun landets navn, breddegrad og lengdegrad:
|_+_|Du kan lagre denne kommandoen som følgende skallskript:
|_+_|Neste gang du trenger å få informasjon om geolokalisering, kan du kjøre skriptet ditt slik:
|_+_|Det er det.