Angenommen , Ihr System verfügt über zwei Ethernet - Geräte, eth0
und eth1
und eth0
ist mit Ihrem LAN, sagen IPs 192.168.1.X und Ihr eth1
Gerät an Ihren ISP (WAN) verbunden ist , Sie gehen zu wollen , die folgenden verwenden ifconfig
Befehl Ihre IP zu erhalten für die WAN-Seite.
HINWEIS: Bei den ersten beiden Methoden wird davon ausgegangen, dass Sie sie auf einem Computer mit zwei Ethernet-Geräten ausführen und eines davon mit Ihrem Internetdienstanbieter (Kabelmodem und / oder DSL-Modem) verbunden ist. In diesem Szenario wird das Ethernet-Gerät (eth1) mit Ihrer IP-Adresse im Internet (WAN-IP) konfiguriert.
1. Weg
+------------------------+
+--------+ 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
Sie können auch den ip
Befehl verwenden.
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
2. Weg
Wenn Sie dies bei einem System herausfinden müssen, das nur im LAN installiert ist, können Sie einen passphrasenlosen SSH-Schlüssel einrichten und ihn einem Konto auf Ihrem LAN-Computer hinzufügen, damit er über den WAN-Zugriff remote auf das System zugreifen kann.
+----------------+
+--------+ 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. Weg
Wenn Sie nicht in die Box mit WAN-Zugang sshten können und einen Heim-Router / Switch wie eine Linksys- oder Netgear-Box verwenden. Möglicherweise können Sie die IP-Adresse von diesem Gerät über eine HTTP-Statusseite abrufen. Ich habe dies auch in der Vergangenheit getan, ähnlich dem, was in diesem whatismyip.com-Forumsbeitrag beschrieben wird .
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
HINWEIS: Dieser Ansatz hängt stark davon ab, über welchen Router / Switch Sie verfügen, ob es sich um eine Marke von Linksys, Netgear usw. handelt. Jeder hat eine eigene Seite mit der WAN-IP.
4. Weg
Senden einer Anfrage an eine externe Internetseite, die Ihre WAN-IP-Adresse zurückmeldet.
HINWEIS: Ich bin mir bewusst, dass in der ursprünglichen Frage erwähnt wurde, dass nach Alternativen zu diesem Ansatz gesucht wurde, aber ich füge sie hier ein, damit diese Antwort alle Grundlagen abdeckt.
+---------------+
+-------------+ +--------+ +------+ 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
Zusätzliche Informationen finden Sie hier: HOWTO: Überprüfen Sie Ihre externe IP-Adresse über die Befehlszeile