Dans le prochain article, nous allons voir comment nous pouvons obtenir l'emplacement géographique de notre adresse IP publique. Nous pourrons le faire via des API ouvertes et un simple script bash, le tout depuis le terminal Ubuntu. Aujourd'hui, tous les appareils connectés à Internet ont une adresse IP, qui a été leur identifiant dans le monde. Cette adresse est celle que nous utiliserons pour obtenir votre emplacement.
Lorsque nous surfons sur Internet, chaque serveur a une adresse IP publique, ceci est attribué directement au serveur ou via un routeur qui envoie le trafic réseau à ce serveur. Les adresses IP offrent un moyen facile de suivre l'emplacement géographique du serveur dans le monde. Ceci peut être réalisé en utilisant deux API fournies par ipinfo.io e ipvigilante.com avec lequel nous pourrons obtenir le pays du serveur, le nom de la ville et ses coordonnées géographiques.
Dans les lignes suivantes, nous verrons comment obtenir le localisation géographique d'une IP du terminal nous aidant avec curl et jq. Le but principal et l'utilisation pour cURL consiste à automatiser les transferts de fichiers ou les séquences d'opérations non supervisées, tandis que jq est un langage fonctionnel de très haut niveau avec prise en charge du backtracking et de la gestion des flux de données JSON.
Localisation géographique d'une IP depuis le terminal
Installez Curl et jq
Pour obtenir la localisation géographique de l'adresse IP, nous devrons installer curl et la outil de ligne de commande jq pour traiter les données JSON obtenues à partir des API de géolocalisation. Pour installer les deux, dans un terminal (Ctrl + Alt + T) vous devrez écrire la commande:
sudo apt install curl jq
Obtenez l'adresse IP publique du serveur
Avant d'obtenir l'emplacement, vous devez connaître l'adresse IP publique du serveur auquel nous nous connectons. Pour cela, nous utiliserons la commande cURL suivante avec laquelle nous ferons une requête à ipinfo.io depuis le terminal (Ctrl + Alt + T) comme indiqué ci-dessous:
curl https://ipinfo.io/ip
Obtenez les données de la localisation géographique de l'IP de votre système grâce à l'API
Après avoir exécuté la commande précédente, nous obtiendrons l'adresse IP publique. Une fois que nous l'avons, nous pourrons faire une demande à ipvigilante.com pour obtenir des données de géolocalisation. Pour cela, nous utiliserons la commande suivante dans le terminal (Ctrl + Alt + T). Il est important de remplacer l'adresse IP publique par celle obtenue avec la commande précédente.
curl https://ipvigilante.com/la-dirección-IP
Automatisez l'appel d'API à l'aide de Bash Script
Pour automatiser le processus de communication avec l'API, nous allons créer un script dans un fichier appelé ipgeolocator.sh (le nom est facultatif). Pour sa création, nous pourrons utiliser n'importe quel éditeur pour la ligne de commande avec laquelle chacun se sent le plus à l'aise.
vim ipgeolocalizador.sh
Lorsque l'éditeur s'ouvre, à l'intérieur, il vous suffit coller la ligne indiqué ci-dessous:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Une fois collé, il ne vous reste plus qu'à enregistrer le fichier et à quitter l'éditeur. Après cela, il sera nécessaire rendre le script exécutable. Nous allons le faire en écrivant dans le même terminal:
chmod +x ipgeolocalizador.sh
À ce stade, nous pouvons exécutez le script comme suit pour obtenir la géolocalisation de l'adresse IP public:
./ipgeolocalizador.sh
Le script ci-dessus affiche le nom de la ville et du pays ainsi que les coordonnées approximatives de latitude et de longitude. La vérité est que Je ne connais pas la marge d'erreur qu'il peut avoir.
Si vous ne souhaitez pas enregistrer la longue commande ci-dessus dans un fichier, vous pouvez également exécuter cette même commande directement dans le terminal (Ctrl + Alt + T):
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Dans ce court article, nous avons vu comment obtenir la géolocalisation d'une adresse IP depuis Ubuntu à l'aide des commandes terminal et curl et jq. Vous pouvez obtenir plus d'informations sur jq ou environ cURL dans leurs articles Wikipédia correspondants.