Obtenez des informations de géolocalisation de l'adresse IP dans Bash sous Linux
Parfois, vous avez besoin d'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.
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. L'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. C'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.
J'utiliserai mon analyseur JSON préféré, jq :
Dans notre cas, la requête doit être la suivante :
http://freegeoip.net/json/119.94.116.145
La partie "json" ici est 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 :
boucle 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 requis. La commande suivante affichera uniquement le nom du pays, la latitude et la longitude :
boucle http://freegeoip.net/json/119.94.116.145|jq -r '.nom_pays,.latitude,.longitude'
#!/bin/sh. boucle -s http://freegeoip.net/json/$1|jq -r '.nom_pays,.latitude,.longitude'
La prochaine fois que vous aurez besoin d'informations de géolocalisation, vous pourrez exécuter votre script comme ceci :
./geo.sh adresse_IP
C'est ça.