En supposant que votre système dispose de 2 périphériques Ethernet, eth0
et eth1
et eth0
est connecté à votre réseau local, par exemple IP 192.168.1.X et votre eth1
appareil est connecté à votre fournisseur d' accès Internet (WAN) , vous allez vouloir utiliser ce qui suit ifconfig
commande pour obtenir votre IP le côté WAN.
REMARQUE: les deux premières manières supposent que vous les exécutez sur un ordinateur doté de deux périphériques Ethernet et que l'un d'entre eux est connecté à votre fournisseur de services Internet (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).
1er chemin
+------------------------+
+--------+ WAN IP | Computer that wants | LAN IP
|Internet|--------------| to know WAN IP |------------
+--------+ 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 ip
commande.
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
2ème voie
Si vous avez besoin de le savoir à partir d'un système qui se trouve uniquement sur le réseau local, vous pouvez configurer une clé ssh sans phrase secrète et l'ajouter à un compte sur votre ordinateur de réseau local afin qu'il puisse accéder au système à distance avec le même accès au réseau étendu.
+----------------+
+--------+ WAN IP +-------------+ LAN IP | Computer that |
|Internet|----------------|remote-server|-----------------| wants to know |
+--------+ 54.234.1.33 +----+-----+----+ 192.168.1.x +----+ WAN IP |
|eth1| |eth0| |eth0|------------+
+----+ +----+ +----+
% ssh ruser1@remote-server "ifconfig eth1 | awk '/inet / { print \$2 }' | sed -e s/addr://"
54.234.1.33
3ème voie
Si vous ne parvenez pas à vous connecter à la boîte avec un accès WAN et que vous utilisez un routeur / commutateur domestique tel qu'une boîte Linksys ou Netgear. Vous pourrez peut-être obtenir l'adresse IP de cet appareil via une page d'état HTTP. Je l'ai déjà fait par le passé, quelque chose de similaire à ce qui est décrit dans cet article du forum whatismyip.com .
192.168.1.2
+----------------+
+--------+ WAN IP +-------------+ LAN IP | Computer that |
|Internet|----------------|router/switch|-----------------| wants to know |
+--------+ 54.234.1.33 +-------------+ 192.168.1.x +----+ WAN IP |
192.168.1.1 |eth0|------------+
+----+
# something like this....
% wget -q -O - http://<username>:<password>@192.168.1.1/Status_Router.asp | grep "ipaddress" | cut -d" " -f2
REMARQUE: Cette approche dépend fortement de votre routeur / commutateur, qu'il s'agisse d'une marque Linksys, Netgear, etc. Chacun aura sa propre page avec l’adresse IP du réseau étendu.
4ème voie
Envoi d'une requête à un site Internet externe qui rendra compte de votre adresse IP WAN.
NOTE: Je sais que la question initiale indiquait qu'ils cherchaient une alternative à cette approche, mais je la mets ici pour que cette réponse couvre toutes les bases.
+---------------+
+-------------+ +--------+ +------+ LAN IP | Computer that |
|whatsmyip.com|---|Internet|---|router|---------------| wants to know |
+-------------+ +--------+ +------+ 192.168.1.x +----+ WAN IP |
you're 54.234.1.33 |eth0|-----------+
+----+
# 1st server
% wget -qO - ipv4bot.whatismyipaddress.com
54.234.1.33
# 2nd server
% curl 'https://api.ipify.org?format=json'
{"ip":"54.234.1.33"}
% curl 'https://api.ipify.org?format=txt'
54.234.1.33
# 3rd server
% curl -s checkip.dyndns.org | sed 's#.*Address: \(.*\)</b.*#\1#'
54.234.1.33
Des informations supplémentaires sont disponibles ici: HOWTO: Vérifiez votre adresse IP externe à partir de la ligne de commande