Linux : comment obtenir son adresse IP publique en ligne de commande ?
Sommaire
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 :
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 :
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.
il y a pour moi plus simple: curl ifconfig.me qui donne directement l’ip publique
Ifconfig.me
curl ifconfig.me marche très bien 🙂
bonjour,
Ident.me permet en plus de curl et de wget d’avoir ssh dns et telnet. C’est pratique pour du forti.
Il suffit de faire :
execute ssh [email protected]
https://api.ident.me
Seul ident.me est compatible IPv6.
Un petit curl monip.me fait tout aussi bien le taff 🙂