Wenn ich bei Google nachschaue , kann ich meine öffentliche IP sehen. Gibt es etwas auf der Ubuntu-Kommandozeile, das mir die gleiche Antwort gibt?
networking
kfmfe04
quelle
quelle
notify-send
.ifconfig eth1 | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*inet *([^ ]+).*/\2/p}'
wo eth1 das Netzwerkgerät o Interesse ist, können Sie die ‚ET1‘ string auslassen alle ips aller Adapter zu zeigen. Stattdessen\2
können Sie auch schreiben\1 \2
, um die Namen der einzelnen Adapter anzuzeigen.Antworten:
Wenn Sie sich nicht hinter einem Router befinden, können Sie dies mit ermitteln
ifconfig
.Wenn Sie sich hinter einem Router befinden, kennt Ihr Computer die öffentliche IP-Adresse nicht, da der Router eine Netzwerkadressumsetzung durchführt. Sie könnten einige Websites fragen , was Ihre öffentliche IP - Adresse verwendet
curl
oderwget
und extrahieren Sie die Informationen , die Sie von ihm brauchen:oder kürzer
quelle
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-linuxZum 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 befindenNAT
. 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
Mit freundlicher Genehmigung von :
Sie können auch
lynx
(Browser) odercurl
anstelle vonwget
mit geringfügigen Abweichungen zum obigen Befehl, um Ihre externe IP zu finden.Verwenden Sie
curl
, um die IP zu finden:Für eine besser formatierte Ausgabe verwenden Sie:
Eine schnellere (wohl schnellste) Methode
dig
mitOpenDNS
als Resolver:Kopiert von: https://unix.stackexchange.com/a/81699/14497
Externe IP finden, ohne auf externe Dienste angewiesen zu sein
Geben Sie Folgendes in Ihr Terminal ein:
Im obigen ersetzt
<interface_name>
mit dem Namen Ihrer tatsächlichen Schnittstelle, zB:eth0
,eth1
,pp0
, etc ...Beispiel Verwendung:
Geben Sie Folgendes in Ihr Terminal ein (dabei werden der Name und die IP-Adresse jeder Netzwerkschnittstelle in Ihrem System abgerufen):
Beispiel Verwendung:
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 denifconfig
basierten Verwendungen hinzugefügt , sodass immer die englische Ausgabe angezeigt wird, unabhängig von der Ländereinstellung.quelle
sudo apt-get install wget
-w
Curl-Option anstelle von Echo :)curl -w '\n' ident.me
Mein Favorit war schon immer:
einfach, leicht zu tippen.
Du musst zuerst curl installieren;)
Wenn ifconfig.me nicht verfügbar ist, versuchen Sie es mit icanhazip.com und / oder ipecho.net
oder
quelle
ifconfig.me
scheint etwas langsamer alsipecho.net
.curl
aber habenwget
:wget -U curl -qO- ifconfig.me
icanhazip.com ist mein Favorit.
Sie können IPv4 explizit anfordern:
Wenn Sie nicht haben
curl
, können Siewget
stattdessen verwenden:quelle
Ich fand alles nervig und langsam, also schrieb ich mein eigenes. Es ist einfach und schnell.
Die API finden Sie unter http://api.ident.me/
Beispiele:
quelle
time curl http://checkip.amazonaws.com
->0.91s
vs.241s
fürident.me
Lass uns einfach beten, dass aws nicht untergeht;)Sie könnten eine DNS-Anfrage anstelle einer HTTP-Anfrage verwenden, um Ihre öffentliche IP herauszufinden:
Es verwendet
resolver1.opendns.com
DNS-Server, um den magischenmyip.opendns.com
Hostnamen in Ihre IP-Adresse aufzulösen .quelle
curl icanhazip.com
. Durchschnitt für diecurl
Version: 174ms. Durchschnitt für die reine DNS-Version: 9 ms. ~ 19x schneller. Siehe auch: unix.stackexchange.com/a/81699/8383curl
selbst langsamer ist alsdig
. Selbst wenn sie so ähnlich wie möglich umgeschriebencurl
würden , wären sie immer noch langsamer; Es verwendet HTTP ( einschließlich DNS) unddig
nur DNS.Amazon AWS
Beispielausgabe:
Ich mag es weil:
quelle
Das, was ich benutze, ist:
Ja, du kannst eine IP haben :-)
quelle
curl icanhazip.com
manchmalwget
nur einer verfügbar ist, manchmal aber auch keinerwget
verfügbar ist undcurl
Ihre einzige Option ist (wie OS / X). So oder socurl icanhazip.com
ist es fast so einfach,curl ifconfig.me
aber viel lustiger ;-)Tippen Sie dies genau ein, drücken Sie Enterwo angezeigt:
telnet ipecho.net 80
EnterGET /plain HTTP/1.1
EnterHOST: ipecho.net
EnterBROWSER: web-kit
EnterEnter
Dadurch wird manuell eine HTTP-Anforderung gesendet, die Ihre IP am Ende von a zurückgibt
HTTP/1.1 200 OK reply
Beispielausgabe:
quelle
Ein weiteres schnelles (kann relativ gesehen das schnellste sein)
quelle
Dafür wurde STUN erfunden. Als Client können Sie eine Anfrage an einen öffentlich zugänglichen STUN-Server senden und die IP-Adresse, die er sieht, zurückgeben lassen. So ähnlich wie whatismyip.com auf niedriger Ebene, da es kein HTTP und keine intelligent gestalteten DNS-Server verwendet, sondern das blitzschnelle STUN-Protokoll.
Verwenden
stunclient
Wenn Sie
stunclient
(apt-get install stuntman-client
unter debian / ubuntu) installiert haben , können Sie einfach Folgendes tun:Wo
A.B.C.D
ist die IP-Adresse Ihres Rechners im lokalen Netz und woW.X.Y.Z
sind die IP-Adressenserver, die Websites von außen sehen (und die, die Sie suchen)? Mit könnensed
Sie die Ausgabe oben auf nur eine IP-Adresse reduzieren:Ihre Frage war jedoch, wie Sie es über die Befehlszeile finden, was die Verwendung eines STUN-Clients möglicherweise ausschließt. Also frage ich mich ...
Verwenden
bash
Eine STUN - Anfrage an einen externen STUN - Server handgefertigt, versandt, mit
netcat
und werden mit nachbearbeitetdd
,hexdump
undsed
wie so:Das Echo definiert eine binäre STUN-Anfrage (0x0001 zeigt Binding Request an) mit der Länge 8 (0x0008) mit dem Cookie 0xc00cee und einigen eingefügten Dingen von wireshark. Nur die vier Bytes, die die externe IP darstellen, werden aus der Antwort entnommen, bereinigt und gedruckt.
Arbeiten, aber nicht für den produktiven Einsatz empfohlen :-)
PS: Viele STUN-Server sind verfügbar, da dies eine Kerntechnologie für SIP und WebRTC ist. Die Verwendung einer von Mozilla sollte aus Datenschutzgründen sicher sein, Sie können jedoch auch eine andere verwenden: STUN-Serverliste
quelle
Ich habe einen blöden Dienst dafür per Telnet. Etwas wie das:
Fühlen Sie sich frei, es zu benutzen.
quelle
Sie können eine Web - Seite mit nur bash lesen, ohne
curl
,wget
:quelle
checkip.amazonaws.com
ist das schnellste für michFür diejenigen von uns mit Login-Zugang zu unseren Routern ist die Verwendung eines Skripts, um den Router nach seiner WAN-IP-Adresse zu fragen, die effizienteste Methode, um die externe IP-Adresse zu ermitteln. Das folgende Python-Skript druckt beispielsweise die externe IP für meinen Medialink MWN-WAPR300N-Router aus:
Beachten Sie, dass dies nicht sehr sicher ist (wie dies bei Klartext-Anmeldeinformationen und der Anmeldung bei den meisten Routern der Fall ist) und auf keinen Fall portierbar ist (muss für jeden Router geändert werden). Es ist jedoch sehr schnell und eine absolut vernünftige Lösung für ein physikalisch sicheres Heimnetzwerk.
Um das Skript für einen anderen Router anzupassen, empfehle ich, das Tamperdata-Addon in Firefox zu verwenden, um zu bestimmen, welche HTTP-Anforderungen zu stellen sind.
quelle
router = subprocess.check_output(['ip', '-o', 'ro', 'list', '0.0.0.0/0']).split()[2]
.Diese erhalten die lokalen IPs:
oder für kürzere Ausgabe:
ebenfalls
und wahrscheinlich:
Dies sollte die externe IP erhalten
NB Wenn Ihnen die Installation nichts ausmacht, gilt Folgendes
curl
:quelle
ifconfig | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*addr: *([^ ]+).*/\1,\2/p}'
druckt die lokalen Schnittstellen und die entsprechenden V4-IPs ausifconfig | sed -nre '/^[^ ]+/{N;N;s/^([^ ]+).*addr: *([^ ]+).*addr: *([^ ]+).*/\1,\2,\3/p}'
- v4 und v6 IPs.Viele Heimrouter können von UPnP abgefragt werden:
Ergreifen Sie dann die IP-Adresse aus der Antwort.
quelle
Wenn Sie DD-WRT verwenden, funktioniert dies für mich:
oder
Wobei 192.168.1.1 die Gateway / Router-LAN-IP-Adresse des DD-WRT-Routers ist.
Die -s- Komponente bedeutet lautlos (dh es werden keine Informationen zum Lockenfortschritt angezeigt).
quelle
Wenn Sie lynx unter Ubuntu installiert haben, geben Sie Folgendes ein
quelle
curl bot.whatismyipaddress.com
funktioniert auch.verwenden
ip
!Suchen Sie dann nach dem entsprechenden Adapter (nicht
lo
und normalerweiseeth0
) und suchen Sie die IP-Adresse in der Näheinet
.quelle
Vielleicht bin ich etwas spät dran, aber inxi kann das ziemlich einfach.
Installieren
inxi
Führen Sie dann den folgenden Befehl aus
Beispiel, bei dem meine Informationen mit der folgenden
z
Option zum Kopieren und Einfügen auf Websites gesperrt wurden :Dort, wo es heißt,
<filter>
wird Ihre WAN-IP, IPv4, MAC-Adresse usw. angezeigtquelle
Geben Sie einfach eine Traceroute für eine Website oder einen Dienst aus.
Zeile 2 scheint immer meine öffentliche IP-Adresse zu sein, nachdem sie an meinem Router-Gateway vorbeigegangen ist.
Also, mach einen bash Befehl.
Und die Ausgabe ...
Ich glaube nicht, dass man sich auf PHP-Skripte verlässt, und die Art ist eine gute Praxis.
quelle
Ein Befehl ohne Abhängigkeiten, mit Ausnahme von 8.8.8.8 als GOogle DNS:
quelle