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. C'est très utile.
Le service peut fournir des résultats de recherche au format JSON ou XML. Ainsi, si nous combinons curl avec un analyseur JSON, nous pouvons obtenir les informations requises.
J'utiliserai mon analyseur JSON préféré, jq :
Il est très léger et rapide.
Pour notre cas, la requête devrait être la suivante :
|_+_|La partie « json » ici est le format de données souhaité. Outre JSON, il peut s'agir de XML ou de CSV.
Exécutons la requête avec curl et voyons le résultat :
Le résultat est une sortie JSON brute difficile à lire. Pour améliorer l'apparence du jeu de résultats, utilisons l'outil jq. Combinez-le avec curl comme suit :
|_+_|Le résultat 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 :
|_+_|Vous pouvez enregistrer cette commande sous le script shell suivant :
|_+_|La prochaine fois que vous aurez besoin d'obtenir des informations de géolocalisation, vous pourrez exécuter votre script comme ceci :
|_+_|C'est ça.