Per obtenir la informació d'ubicació geogràfica sobre una adreça IP específica, heu d'utilitzar algun servei en línia que proporcioni l'API adequada. És una bona idea utilitzar algun servei públic per evitar el procediment d'autorització i la gestió de claus API. Un d'aquests serveis és FreeGeoIP.net.
Proporciona una API HTTP pública per cercar la geolocalització de les adreces IP. Utilitza una base de dades d'adreces IP associades a ciutats juntament amb altra informació rellevant com la zona horària, la latitud i la longitud. Això és molt útil.
El servei pot proporcionar resultats de cerca com a JSON o XML. Per tant, si combinem curl amb algun analitzador JSON, podem obtenir la informació necessària.
Faré servir el meu analitzador JSON favorit, jq:
És molt lleuger i ràpid.
Per al nostre cas, la consulta hauria de ser la següent:
|_+_|La part 'json' aquí és el format de dades desitjat. A més de JSON, pot ser XML o CSV.
Executem la consulta amb curl i veiem la sortida:
El resultat és una sortida JSON en brut que és difícil de llegir. Per millorar l'aparença del conjunt de resultats, utilitzem l'eina jq. Combina-ho amb rínxol de la següent manera:
|_+_|La sortida serà més fàcil de llegir:
Amb jq, podeu filtrar la sortida i fer que només mostri els camps obligatoris. L'ordre següent mostrarà només el nom del país, la latitud i la longitud:
|_+_|Podeu desar aquesta ordre com el següent script d'intèrpret d'ordres:
|_+_|La propera vegada que necessiteu obtenir informació de geolocalització, podeu executar el vostre script d'aquesta manera:
|_+_|Això és.