15/11/2024

Commandes et SystèmeLinux

Linux : comment obtenir son adresse IP publique en ligne de commande ?

I. Présentation

Dans ce tutoriel aux allures d'astuce, nous allons voir comment obtenir l'adresse IP publique à partir de la ligne de commande Linux, ou à partir du terminal si vous préférez. Il est très simple d'obtenir l'adresse IP configurée sur une machine avec la commande "ip address", mais généralement ce n'est pas l'adresse IP publique (sauf sur un VPS, par exemple).

Si la machine est connectée derrière un routeur où il y a du NAT, c'est l'adresse IP publique du routeur (interface WAN) qui sera utilisée pour naviguer sur Internet, et elle n'est pas configurée directement sur la machine. Pour obtenir cette information en ligne de commande, on a plusieurs solutions possibles...

II. Utilisation de wget

Sous Linux, la commande wget sert à télécharger des fichiers, mais aussi à récupérer le contenu d'une page Web (en jouant avec les options). Ainsi, on va pouvoir exploiter les options de wget pour récupérer l'adresse IP sur une page Web. Reste ensuite à identifier un site en ligne capable de nous retourner l'adresse IP publique, sans autre chose. Autrement dit, une page brute avec notre adresse IP publique.

La bonne nouvelle, c'est qu'il existe différents sites comme https://api.ipify.org et https://ipecho.net/plain.

On va pouvoir récupérer l'adresse IP publique avec cette commande :

wget -qO- https://api.ipify.org

Sauf que pour que ce soit plus propre au niveau de la sortie, on va compléter de cette façon :

wget -qO- https://api.ipify.org | xargs echo

Ce qui donne :

Linux - IP publique avec wget

III. Utilisation de cURL

Cet article est fait pour cURL, qui, lui aussi, est très pratique pour effectuer des requêtes sur différents protocoles. Ainsi, on va pouvoir appliquer le même principe qu'avec wget, ce qui donne :

curl -s https://api.ipify.org | xargs echo

On aurait pu le faire aussi avec un autre site que j'ai évoqué précédemment :

curl -s https://ipecho.net/plain | xargs echo

IV. Stocker l'adresse IP publique dans une variable

Si l'on couple l'utilisation de la commande wget ou cURL avec Bash, on peut très bien stocker l'information dans une variable pour l'exploiter par la suite... Voici un exemple avec la variable nommée "IpPublique".

IpPublique=$(curl -s https://api.ipify.org)
echo "Mon adresse IP publique est : $IpPublique"

Ce qui donne :

Linux - IP publique bash

V. Conclusion

Vous êtes désormais capable de récupérer votre adresse IP publique en ligne de commande sous Linux, que ce soit sous Debian, Ubuntu, Rocky Linux, Fedora, etc... Il existe d'autres méthodes basées sur les DNS, notamment avec les commandes dig et host.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

6 commentaires sur “Linux : comment obtenir son adresse IP publique en ligne de commande ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.