Parfois, vous devez obtenir rapidement les informations de géolocalisation d'une adresse IP. Sous Linux, vous pouvez utiliser la puissance des applications de console pour gagner du temps et récupérer rapidement ces informations. Voyons comment cela peut être fait.
Publicité
Pour obtenir les informations de géolocalisation sur une adresse IP spécifique, vous devez utiliser un service en ligne qui fournit l'API appropriée. C'est une bonne idée d'utiliser un service public pour éviter la procédure d'autorisation et la gestion des clés API. Un de ces services est FreeGeoIP.net.
Il fournit une API HTTP publique pour rechercher la géolocalisation des adresses IP. Il utilise une base de données d'adresses IP associées aux villes ainsi que d'autres informations pertinentes telles que le fuseau horaire, la latitude et la longitude. Ceci est très utile.
Le service peut fournir des résultats de recherche au format JSON ou XML. Donc, si nous combinons curl avec un analyseur JSON, nous pouvons obtenir les informations requises.
cómo exportar todos los recuerdos de Snapchat
J'utiliserai mon analyseur JSON préféré, jq:
Il est très léger et rapide.
Dans notre cas, la requête doit être la suivante:
http://freegeoip.net/json/119.94.116.145
La partie «json» est ici le format de données souhaité. Outre JSON, il peut s'agir de XML ou CSV.
Exécutons la requête avec curl et voyons le résultat:
Le résultat est une sortie JSON brute qui est difficile à lire. Pour améliorer l'apparence du jeu de résultats, utilisons l'outil jq. Combinez-le avec curl comme suit:
curl http://freegeoip.net/json/119.94.116.145|jq
La sortie sera plus facile à lire:
En utilisant jq, vous pouvez filtrer la sortie et lui faire afficher uniquement les champs obligatoires. La commande suivante affichera uniquement le nom du pays, la latitude et la longitude:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.nom_pays, .latitude, .longitude'
Vous pouvez enregistrer cette commande en tant que script shell suivant:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.nom_pays, .latitude, .longitude'
La prochaine fois que vous aurez besoin d'obtenir des informations de géolocalisation, vous pourrez exécuter votre script comme ceci:
./geo.sh adresse_IP
C'est ça.