Zum Ermitteln der externen IP können Sie entweder externe webbasierte Dienste oder systembasierte Methoden verwenden. Die einfachere Möglichkeit besteht darin, den externen Dienst zu verwenden. Die ifconfig
basierten Lösungen funktionieren in Ihrem System nur, wenn Sie sich nicht hinter a befinden NAT
. Die beiden Methoden wurden weiter unten ausführlich erörtert.
Suche nach externer IP mit externen Diensten
Am einfachsten ist es, einen externen Dienst über einen Befehlszeilenbrowser oder ein Download-Tool zu verwenden. Da wget
es in Ubuntu standardmäßig verfügbar ist, können wir das verwenden.
Um Ihre IP zu finden, verwenden Sie
$ wget -qO- https://ipecho.net/plain ; echo
Mit freundlicher Genehmigung von :
Sie können auch lynx
(Browser) oder curl
anstelle von wget
mit geringfügigen Abweichungen zum obigen Befehl, um Ihre externe IP zu finden.
Verwenden Sie curl
, um die IP zu finden:
$ curl https://ipecho.net/plain
Für eine besser formatierte Ausgabe verwenden Sie:
$ curl https://ipecho.net/plain ; echo
Eine schnellere (wohl schnellste) Methode dig
mit OpenDNS
als Resolver:
Die anderen Antworten hier gehen alle über HTTP an einen Remote-Server. Einige von ihnen erfordern das Parsen der Ausgabe oder verlassen sich auf den User-Agent-Header, damit der Server im Klartext antwortet. Sie ändern sich auch sehr häufig (gehen runter, ändern ihren Namen, schalten Anzeigen, ändern möglicherweise das Ausgabeformat usw.).
- Das DNS-Antwortprotokoll ist standardisiert (das Format bleibt kompatibel).
- Historisch gesehen überleben DNS-Dienste (OpenDNS, Google Public DNS, ..) in der Regel viel länger und sind stabiler, skalierbarer und im Allgemeinen gepflegter als der heutzutage beliebte neue HTTP-Dienst whatismyip.com.
- (für diejenigen, die sich für die Mikrooptimierung interessieren), sollte diese Methode von Natur aus schneller sein (sei es nur um ein paar Mikrosekunden).
Verwendung von dig mit OpenDNS als Resolver:
$ dig +short myip.opendns.com @resolver1.opendns.com
111.222.333.444
Kopiert von: https://unix.stackexchange.com/a/81699/14497
Externe IP finden, ohne auf externe Dienste angewiesen zu sein
- Wenn Sie den Namen Ihrer Netzwerkschnittstelle kennen
Geben Sie Folgendes in Ihr Terminal ein:
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
Im obigen ersetzt <interface_name>
mit dem Namen Ihrer tatsächlichen Schnittstelle, zB: eth0
, eth1
, pp0
, etc ...
Beispiel Verwendung:
$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
- Wenn Sie den Namen Ihrer Netzwerkschnittstelle nicht kennen
Geben Sie Folgendes in Ihr Terminal ein (dabei werden der Name und die IP-Adresse jeder Netzwerkschnittstelle in Ihrem System abgerufen):
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
Beispiel Verwendung:
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444
NB: Die Ausgaben sind indikativ und nicht real.
Mit freundlicher Genehmigung: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
AKTUALISIEREN
LANG=c
wurde zu den ifconfig
basierten Verwendungen hinzugefügt , sodass immer die englische Ausgabe angezeigt wird, unabhängig von der Ländereinstellung.