De vegades cal obtenir la informació de geolocalització d’una adreça IP ràpidament. A Linux, podeu utilitzar la potència de les aplicacions de consola per estalviar temps i recuperar aquesta informació ràpidament. Vegem com es pot fer.
Anunci publicitari
Per obtenir la informació de localització 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.
Ofereix una API HTTP pública per cercar la geolocalització d’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 JSON o XML. Per tant, si combinem curl amb algun analitzador JSON, podem obtenir la informació necessària.
com es crea una llista de reproducció de youtube
Utilitzaré el meu analitzador JSON preferit, jq:
És molt lleuger i ràpid.
Per al nostre cas, la consulta hauria de ser la següent:
http://freegeoip.net/json/119.94.116.145
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, fem servir l'eina jq. Combineu-lo amb rínxols de la següent manera:
rínxol http://freegeoip.net/json/119.94.116.145|jq
La sortida serà més fàcil de llegir:
Amb jq, podeu filtrar la sortida i fer-la mostrar només els camps obligatoris. L'ordre següent només mostrarà el nom del país, la latitud i la longitud:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Podeu desar aquesta ordre com a script de shell següent:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
La propera vegada que necessiteu obtenir informació de geolocalització, podeu executar el vostre script així:
./geo.sh Adreça_IP
Això és.