En supposant que votre système possède 2 périphériques Ethernet, eth0
and eth1
et que eth0
est connecté à votre LAN, disons les adresses IP 192.168.1.X et votre périphérique eth1
est connecté à votre Fournisseur d'Accès Internet (FAI) (WAN), vous voudrez utiliser la commande ifconfig
suivante pour obtenir votre IP du côté WAN.
REMARQUE: Les 2 premières méthodes supposent que vous les exécutez sur un ordinateur possédant 2 périphériques Ethernet dont l'un est connecté à votre FAI (modem câble et/ou modem DSL). Dans ce scénario, le périphérique Ethernet (eth1) sera configuré avec votre adresse IP sur Internet (IP WAN).
1ère méthode
+------------------------+
+--------+ WAN IP | Ordinateur qui veut | LAN IP
|Internet|--------------| connaître son IP WAN |------------
+--------+ 54.234.1.33 | +------+ +------+ | 192.168.1.1
+-| eth1 |------| eth0 |-+
+------+ +------+
% ifconfig eth1 | awk '/inet / { print $2 }' | sed -e s/addr://
54.234.1.33
Vous pouvez également utiliser la commande ip
.
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
2ème méthode
Si vous avez besoin de trouver cette information à partir d'un système se trouvant uniquement sur le LAN, vous pourriez configurer une clé SSH sans passphrase et l'ajouter à un compte sur votre machine LAN afin qu'elle puisse accéder à distance au système disposant de l'accès WAN de la manière suivante.
+----------------+
+--------+ WAN IP +-------------+ LAN IP | Ordinateur qui |
|Internet|----------------|serveur-distant|-----------------| veut connaître |
+--------+ 54.234.1.33 +----+-----+----+ 192.168.1.x +----+ son IP WAN |
|eth1| |eth0| |eth0|------------+
+----+ +----+ +----+
% ssh ruser1@remote-server "ifconfig eth1 | awk '/inet / { print \$2 }' | sed -e s/addr://"
54.234.1.33
3ème méthode
Si vous ne pouvez pas vous connecter en SSH à la boîte disposant de l'accès WAN et que vous utilisez un routeur/commutateur domestique tel qu'un boîtier Linksys ou Netgear. Vous pourriez être en mesure d'obtenir l'IP à partir de ce dispositif via une page de statut HTTP. J'ai fait cela dans le passé également, quelque chose de similaire à ce qui est décrit dans ce forum post whatismyip.com.
192.168.1.2
+----------------+
+--------+ WAN IP +-------------+ LAN IP | Ordinateur qui |
|Internet|----------------|routeur/commutateur|-----------------| veut connaître |
+--------+ 54.234.1.33 +-------------+ 192.168.1.x +----+ son IP WAN |
192.168.1.1 |eth0|------------+
+----+
# quelque chose comme ceci....
% wget -q -O - http://:@192.168.1.1/Status_Router.asp | grep "ipaddress" | cut -d" " -f2
REMARQUE: Cette approche dépend fortement du routeur/commutateur que vous possédez, que ce soit une marque Linksys, Netgear, etc.. Chacun aura sa propre page unique avec l'IP WAN dessus.
4ème méthode
Envoyer une requête à un site Internet externe qui vous rapportera votre adresse IP WAN.
REMARQUE: Je suis conscient que la question originale mentionnait qu'ils cherchaient des alternatives à cette approche mais je la mets ici afin que cette réponse couvre toutes les bases.
+---------------+
+-------------+ +--------+ +------+ LAN IP | Ordinateur qui |
|whatsmyip.com|---|Internet|---|routeur|---------------| veut connaître |
+-------------+ +--------+ +------+ 192.168.1.x +----+ son IP WAN |
you're 54.234.1.33 |eth0|-----------+
+----+
# 1er serveur
% wget -qO - ipv4bot.whatismyipaddress.com
54.234.1.33
# 2ème serveur
% curl 'https://api.ipify.org?format=json'
{"ip":"54.234.1.33"}
% curl 'https://api.ipify.org?format=txt'
54.234.1.33
# 3ème serveur
% curl -s checkip.dyndns.org | sed 's#.*Address: \(.*\)
`
Des informations supplémentaires sont disponibles ici : COMMENT FAIRE : Vérifier votre adresse IP externe en ligne de commande
`