Frage Befehl zum Ermitteln meiner öffentlichen IP?


Wenn ich mich erkundige GoogleIch kann meine öffentliche IP sehen. Gibt es etwas auf der Ubuntu-Kommandozeile, das mir die gleiche Antwort geben wird?


526
2018-01-16 11:50


Ursprung


"mit dynamischer IP", "SSH mit einem anderen System über das Internet", "der Befehl, der die aktuelle PUBLIC IP anzeigt". Siehst du das Huhn / Ei-Problem hier? Wie können Sie Befehle auf einem Remote-Server ausführen, ohne dessen Adresse zu kennen? Sie könnten sich mehr für Dienste wie no-ip.com / DynDNS.org interessieren. - gertvdijk
man kann nicht SSH ohne die öffentliche IP meines Freundes zu kennen ... dynDNS kostet viel und no-ip zäh funktioniert aber die situation lässt das nicht zu ... eh ist die frage schon beantwortet .. danke für deinen vorschlag - Z9iT
PS duckduckgo.com/?q=ip (Keine Befehlszeile, aber kein großer Bruder G weder) - Campa
Vielleicht sollte dies eine separate Frage sein, aber ich würde gerne eine Warnung sehen, wenn sich meine öffentliche IP-Adresse ändert. Im Moment verwende ich nur die folgenden Antworten in einer Crontab mit notify-send. - PJ Brunet


Antworten:


Wenn Sie nicht hinter einem Router sind, können Sie es mit herausfinden ifconfig.

Wenn Sie sich hinter einem Router befinden, weiß Ihr Computer nichts über die öffentliche IP-Adresse, da der Router eine Netzwerkadressübersetzung durchführt. Sie könnten eine Website fragen, was Ihre öffentliche IP-Adresse verwendet curl oder wget und extrahiere die Informationen, die du brauchst:

curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  

oder kürzer

curl ipinfo.io/ip

748
2018-01-16 11:56



ty - gleich nachdem ich gepostet habe, habe ich gemerkt, dass ich nicht zuerst nach einer antwort gegoogelt habe: sieht so aus als würde das funktionieren curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  Andere Möglichkeiten sind hier aufgelistet: go2linux.org/what-is-my-public-ip-address-with-linux - kfmfe04
sicher - Sie können es zu Ihrer Antwort hinzufügen - kfmfe04
Zur Klarstellung: Das war ein Hack, und ein sehr hässlicher, also habe ich einen Schnitt gemacht, um es einfacher zu machen und etwas, an das sich die Leute erinnern können. - jrg♦
Genau wie Giovanni P sagte. Das OP sollte die akzeptierte Antwort ändern. - loostro
Curls ipinfo.io/ip - chao


Zum Suchen der externen IP können Sie entweder externe webbasierte Dienste verwenden oder systembasierte Methoden verwenden. Umso einfacher ist es, den externen Dienst zu nutzen, auch den ifconfig Basierte Lösungen funktionieren nur in Ihrem System, wenn Sie nicht hinter einem stehen NAT. Die zwei Methoden wurden unten im Detail diskutiert.

Suchen externer IP-Adressen mit externen Diensten

Am einfachsten ist es, einen externen Dienst über einen Befehlszeilenbrowser oder ein Download-Tool zu verwenden. Schon seit wget ist standardmäßig in Ubuntu verfügbar, wir können das verwenden.
Um Ihre IP zu finden, verwenden Sie

$ wget -qO- http://ipecho.net/plain ; echo

Höflichkeit:

Du könntest auch benutzen lynx(Browser) oder curl anstelle von wget mit geringfügigen Abweichungen zum obigen Befehl, um Ihre externe IP zu finden.

Verwenden curl um die IP zu finden:

$ curl ipecho.net/plain

Für eine besser formatierte Ausgabe verwenden Sie:

$ curl ipecho.net/plain ; echo

Eine schnellere (wohl schnellste) Methode mit dig mit OpenDNS als Resolver:

Die anderen Antworten hier gehen alle über HTTP zu einem entfernten Server. Einige   Sie erfordern die Analyse der Ausgabe oder beruhen auf dem User-Agent-Header   um den Server im Klartext antworten zu lassen. Sie ändern sich auch ziemlich   häufig (gehen Sie nach unten, ändern Sie ihren Namen, schalten Sie Anzeigen ein, könnte sich ändern   Ausgabeformat usw.).

  1. Das DNS-Antwortprotokoll ist standardisiert (das Format bleibt kompatibel).
  2. Historisch gesehen, neigen DNS-Dienste (OpenDNS, Google Public DNS, ..) dazu, viel länger zu überleben und sind stabiler, skalierbar und allgemein betrachtet   nach als was auch immer neue hip whatismyip.com HTTP Service ist heute heiß.
  3. (für jene Geeks, die sich um Mikro-Optimierung kümmern), sollte diese Methode von Natur aus schneller sein (sei es nur ein paar Mikrosekunden).

Verwenden 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-Adresse 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, ersetzen <interface_name> mit dem Namen Ihrer tatsächlichen Schnittstelle, z. 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 (dadurch erhalten Sie den Namen und die IP-Adresse jeder Netzwerkschnittstelle in Ihrem System):

$ 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 Ergebnisse sind indikativ und nicht real.

Höflichkeit:  http://www.if-not-true-then-false.com/2010/linux-get-ip-address/

AKTUALISIEREN 

  1. LANG=c wurde hinzugefügt ifconfig basierend auf Verwendungen, so dass es immer die englische Ausgabe gibt, unabhängig von der Gebietseinstellung.

364
2018-06-01 12:10



@ Z9iT, Sicher .. Es sollte in jeder Linux-Distribution funktionieren, sofern Sie wget installiert haben. Wie gesagt, wenn Sie entweder Curl oder Luchs bereits zur Verfügung haben, verwenden Sie diese stattdessen. Sie müssten root-Berechtigung für die Installation verwenden sudo apt-get install wget - saji89
Die Befehle mit ifconfig funktionieren nur, wenn Sie nicht hinter einem NAT sind. - lukassteiner
benutz einfach -w Curl-Option statt Echo :) curl -w '\n' ident.me - drAlberT
Dieser Vorschlag mit Dig ist ziemlich nett unix.stackexchange.com/questions/22615/... - binaryanomaly
@saji ifconfig wenn veraltet, bitte benutzen iproute2 ; ^). Der Befehl wäre ip -o -4 a s eth0 | awk '{sub(/\/.*/, "", $4);print $4}'. - bufh


Mein Favorit war schon immer:

curl ifconfig.me

einfach, leicht zu tippen.

Du musst zuerst die Curl installieren;)

Wenn ifconfig.me nicht aktiv ist, versuche icanhazip.com und / oder ipecho.net

curl icanhazip.com

oder

curl ipecho.net

103
2018-06-01 12:41



@ Z9iT, ich habe das gerade überprüft. Ja, es würde die externe IP in Ihrem Terminal ausgeben. - saji89
Die Antwortzeit von ifconfig.me scheint ein bisschen langsamer als ipecho.net. - Drew Noakes
Wenn Sie nicht haben curl aber hab wget: wget -U curl -qO- ifconfig.me - Stéphane Chazelas
ifconfig.me scheint nicht zu antworten :( - Asfand Qazi
@ AsfandYarQazi - hier arbeiten. Sie können einen der Alternativen, icanhazzip.com versuchen - Panther


icanhazzip.com ist mein Favorit.

curl icanhazip.com

Sie können IPv4 explizit anfordern:

curl ipv4.icanhazip.com

Wenn Sie nicht haben curl Sie können verwenden wget stattdessen:

wget -qO- icanhazip.com

55
2018-06-01 17:23



Versuchen ipv4.icanhazip.com - yprez
IPv4: curl ipv4.icanhazip.com     IPv6: curl ipv6.icanhazip.com - Peter
Busybox hat keine Locke, verwenden Sie stattdessen: wget -qO- http://icanhazip.com - Hengjie
Hier ist ein Bash-Only-Befehl: exec 3<>/dev/tcp/icanhazip.com/80 && echo -e 'GET / HTTP/1.0\n' >&3 && cat <&3 - jfs
ipv6.icanhazip.com scheint nicht mehr zu funktionieren. - Hibou57


Ich habe alles als nervig und langsam empfunden, also habe ich mein eigenes geschrieben. Es ist einfach und schnell.

Seine API ist aktiviert http://api.ident.me/

Beispiele:

curl ident.me
curl v4.ident.me
curl v6.ident.me

44
2018-01-03 15:49



Woah, das war Ja wirklich schnell! - waldyrious
ich finde die icanhazzip.com Lösung schneller und es enthält eine neue Zeile in der Ausgabe. - Tyler Collier
Ja, in letzter Zeit war es tatsächlich schneller. Zwickte nur meine Lösung. - Pierre Carrier
Kudos! 2 Jahre und du behälst es immer noch. Gut gemacht. "IDENTify ME", kommt mir in den Sinn, wenn ich ip check brauche :) - Mohnish
@PierreCarrier v6.ident.me funktioniert nicht - SebMa


Sie können eine DNS-Anfrage anstelle einer HTTP-Anfrage verwenden, um Ihre öffentliche IP-Adresse zu ermitteln:

$ dig +short myip.opendns.com @resolver1.opendns.com

Es benutzt resolver1.opendns.com DNS-Server, um die Magie aufzulösen myip.opendns.com Hostname für Ihre IP Adresse.


37
2018-02-27 15:07



Das ist Ja wirklich schnell. Ich habe eine Aufwärmübung gemacht, dann jeweils 10 Hinrichtungen und curl icanhazip.com. Durchschnitt für die curl Version: 174ms. Durchschnitt für die reine DNS-Version: 9 ms. ~ 19x schneller. Siehe auch: unix.stackexchange.com/a/81699/8383 - Adam Monsen
@AdamMonsen Danke für den Link. Der Sinn der Verwendung von DNS (wie die Antwort, die Sie verlinkt haben) ist, dass die Antwort Standard ist (und es unwahrscheinlich ist, dass sie sich ändert) und der Dienst (OpenDNS) länger bestehen bleibt als die meisten seiner HTTP-Alternativen. Die Zeit, die benötigt wird, um die Anfrage zu stellen, wird möglicherweise von der Startzeit des Befehls überschattet. - jfs
Ja. Ich wäre nicht überrascht, wenn curl selbst ist langsamer als dig. Auch wenn sie so ähnlich wie möglich umgeschrieben wurden, curl wäre immer noch langsamer; es verwendet HTTP (einschließlich DNS) und dig verwendet nur DNS. - Adam Monsen


Der, den ich benutze ist:

wget -O - -q icanhazip.com

Ja, du kannst ip haben :-)


18
2018-01-16 14:20



ich bevorzuge curl icanhazip.com manchmal wget ist die einzige verfügbare, aber manchmal nicht wget ist auch verfügbar und curl ist Ihre einzige Option (wie OS / X). In jedem Fall curl icanhazip.com ist fast so einfach wie curl ifconfig.me aber viel lustiger ;-) - TryTryAgain