Kann ich meine externe IP-Adresse ohne ausgehende Webanforderung sehen?

4213
Axel Persinger

Kann Ihre externe IP-Adresse angezeigt werden, wenn keine NAT-Verbindung vorliegt, ohne dass eine ausgehende Webanforderung gestellt wird?

Jedes Betriebssystem (Windows, Linux usw.) ist in Ordnung.

20
Versuchen Sie nur, HTTP zu vermeiden, oder versuchen Sie zu verhindern, dass ausgehender Datenverkehr gesendet wird? Die einzigen universellen Lösungen beinhalten das Senden einer Art ausgehenden Datenverkehrs, aber es muss sich nicht um HTTP handeln. Spiff vor 5 Jahren 7
Dies war eher eine Hypothese, ich wollte überhaupt keinen ausgehenden Verkehr machen. Axel Persinger vor 5 Jahren 0
Wollen Sie damit sagen, dass Ihr Netzwerk / Router sich hinter einem NAT-Setup der Enterprise-Klasse befindet (dh er erhält eine private IP-Adresse von Ihrem ISP)? Wenn ja, gibt es keine Möglichkeit, an die Sie denken, dass Sie die öffentliche IP-Adresse finden können, ohne dass etwas in das öffentliche Netzwerk gelangt und im Wesentlichen "zurückgeschaut" wird, wie beispielsweise whatsmyip.com oder ähnliche Dienste. acejavelin vor 5 Jahren 2
Der Hack, den ich früher gemacht habe, war die Überprüfung mit meinem Router - ich hatte tatsächlich ein wirklich schmutziges Skript, das kratzte, da die meisten webbasierten Dienste meine IP nicht richtig erkennen würden. Mein ISP macht auf diese Weise wirklich Spaß. Journeyman Geek vor 5 Jahren 0
Wer sagt, dass Sie genau eine externe Adresse haben? Bei NAT kann es sein, dass Sie je nach Ziel oder Protokoll Ihrer Anfrage aus mehreren angezeigt werden. Mitch vor 5 Jahren 0
Sie können versuchen, Ihren ISP mit Ihren Kundendaten anzurufen. Benötigt keine Internetverbindung und keinen Computer. Thomas vor 5 Jahren 2

6 Antworten auf die Frage

23
harrymc

Wenn sich Ihr Computer hinter NAT befindet, können Sie möglicherweise die externe IP-Adresse Ihres Routers sehen, aber Sie benötigen Administratorzugriff auf den Router.

Der Router kennt Ihre externe IP-Adresse. Durch Zugriff auf die Konfigurationsseite können Sie diese IP-Adresse finden. Dieser Weg erfordert kein spezielles Werkzeug außer einem Webbrowser.

Andere Protokolle, die ein Werkzeug zum Abrufen der Informationen benötigen:

Wie von Benutzer @dirkt getestet, funktionieren alle Methoden nur mit IPv4 (außer möglicherweise für PCP).

@NicHartley Hyperbole kann sicherlich Teil eines Sarkasmus sein, aber beim Sarkasmus geht es mehr um einen Ton oder die Absicht zu verspotten, die beide in Textform anders übermittelt werden als persönlich. Obwohl jedes Protokoll IP zur Bestimmung einer IP-Adresse verwenden muss, ist dies eine offensichtliche und ja tautologische Anforderung (da Sie nicht bestimmen können, was Sie nicht verwenden), aber ein auf IP aufgebautes Protokoll ist immer noch ein anderes Protokoll theoretisch könnten mehrere verwendet werden, die dieses Ziel erreichen. Der Punkt von Lightness bestand darin, der Behauptung bezüglich der Anforderung einer Webanfrage entgegenzuwirken. eques vor 5 Jahren 0
"Jeder andere Weg erfordert eine externe Webanforderung." Web (dh HTTP) ist nicht erforderlich, aber am einfachsten zu erfassen eques vor 5 Jahren 2
Wie in der anderen Antwort erwähnt, bieten uPnP, NAT-PMP und PCP neben dem Zugriff auf die Konfigurationsseite verschiedene Möglichkeiten, um Informationen vom Router abzurufen. So wie Sie es formuliert haben, sieht es aus wie "neben dem Zugriff auf die Konfigurationsseite ist für jede andere Art eine Webanfrage erforderlich". Richtig ist "neben dem Abrufen der Informationen vom Router ist auch ein anderer Verbindungsversuch erforderlich" (es muss keine Webanfrage sein). dirkt vor 5 Jahren 1
@dirkt: Für UPnP bin ich nicht überzeugt; NAT-PMP funktioniert meines Erachtens nur mit IPv4; PCP in einem IPv6-Netzwerk gibt das IPv6-Präfix zurück und kann weitaus mehr, aber dies wird normalerweise nicht auf kommerziellen Routern implementiert. harrymc vor 5 Jahren 0
@eques: Das Web ist nach zwei Jahrzehnten so viel mehr als nur HTTP ... harrymc vor 5 Jahren 0
@ harrymc: Der UPnP-Service-Endpunkt für meine Fritzbox ist "WANIPConn1 / GetExternalIPAddress" und hat gerade die korrekte Adresse zurückgegeben. dirkt vor 5 Jahren 1
@dirkt: Ich bin überzeugt. harrymc vor 5 Jahren 0
Und der Vollständigkeit halber habe ich gerade "natpmpc" installiert und ausprobiert, was auch gut funktioniert und die richtige Adresse für meine Fritzbox liefert. Und natürlich funktionieren alle Methoden nur mit IPv4; Für IPv6 sollten Sie * ein global routbares Präfix von Ihrem ISP erhalten, dh, die extern sichtbare IPv6-Adresse ist die IPv6 der Maschinen im LAN - die extern sichtbare Adresse des Routers spielt keine Rolle. ISPs, die auf IPv6-NAT oder ähnlichen Dingen bestehen, haben eindeutig eine verborgene Agenda, und ich würde sie möglichst vermeiden, dirkt vor 5 Jahren 0
@harrymc die genaue Definition kann variieren, aber auf der Anwendungsebene ist das World Wide Web HTTP (S). Es gibt einige Zusatzprotokolle wie Websockets, aber es ist sicherlich nicht wahr, dass alles Internet Web ist eques vor 5 Jahren 0
@eques: Das Web hat sich zum Internet entwickelt, daher werden die beiden Begriffe heute von vielen (einschließlich mir) austauschbar verwendet. Meine aktuelle Antwort hat einen präziseren Wortlaut. harrymc vor 5 Jahren 0
Das Internet ging dem Web voraus. Ja, die Leute verwenden sie zwar austauschbar, aber in technisch versierteren Gruppen bleibt der Unterschied, wenn auch weniger genau. Web! = Internet. eques vor 5 Jahren 0
11
Spiff

Es gibt einige Möglichkeiten, mit einigen NATs zu arbeiten, aber nichts, was garantiert überall funktioniert.

Ich glaube, dass uPnP, NAT-PMP und PCP (Universal Plug & Play, NAT Port Mapping Protocol und Port Control Protocol) alle Möglichkeiten haben, ein kompatibles NAT-Gateway nach der öffentlichen Adresse zu fragen, aber nicht alle NATs unterstützen diese Protokolle. Der Support wird bei Routern für Heim-Gateways häufiger als bei NAT- oder Carrier-Grade-NAT-Lösungen.

Wenn Sie sich hinter einem NAT befinden, ist der einzige sichere Weg, um herauszufinden, in welche öffentliche IP-Adresse Ihr Datenverkehr umgewandelt wird, den ausgehenden Datenverkehr an einen öffentlichen Host zu senden, der zurückmeldet, und zwar so, dass das NAT dies nicht übersetzt Adresse, von der Ihr Verkehr scheinbar kam. Die Verwendung eines webbasierten Dienstes ist eine Möglichkeit, Sie können dies jedoch auch tun, indem Sie beispielsweise SSHing in eine Cloud-Serverinstanz ausführen und feststellen, woher sshdIhre SSH-Sitzung kommt.

Auch UPnP usw. könnte zu einem falschen Ergebnis führen, wenn das System hinter doppeltem (oder mehr) NAT-Namen war. user71659 vor 5 Jahren 8
@ user71659 Ich habe mich gefragt, ob es eine Anycast-Adresse gibt, die automatisch zum äußersten NAT geleitet wird, so dass sie für diese Art von Anfrage verwendet werden kann. kasperd vor 5 Jahren 0
@kasperd Jedes NAT hält es für das äußerste NAT. Es gibt sicherlich IPs, die automatisch außerhalb aller NATs geroutet werden. Diese werden als öffentliche IPs bezeichnet. user20574 vor 5 Jahren 1
@ user20574 Nein, NATs denken nicht so, die meisten interessieren sich einfach nicht dafür. Wenn eine solche Anycast-Adresse definiert werden soll, müsste der Standard auch definieren, wann ein NAT diese IP-Adresse selbst zuweist und wann nicht. Die Antwort darauf lautet, wenn sich die externe IP-Adresse in RFC 1918 oder RFC 6598 befindet, weist das NAT die Anycast-Adresse nicht zu. kasperd vor 5 Jahren 1
8
Mehrdad

Sie können eine DNS-Anfrage verwenden, die meiner Meinung nach nicht unter die Kategorie "Webanfrage" fallen würde:

nslookup myip.opendns.com resolver1.opendns.com 
Sie können auch dig + short @ 8.8.8.8 oo.myaddr.l.google.com txt | verwenden grep edns`. Ich habe den Befehl hier gefunden: https://groups.google.com/d/msg/public-dns-discuss/uyzmMcHQBE0/x7o-uUVQFAAJ kasperd vor 5 Jahren 1
Ihr 'nsslookup'-Befehl schlägt für mich fehl. Ich bekomme `Server: resolver1.opendns.com`` Adresse: 2620: 119: 35 :: 35 # 53` `** Server kann myip.opendns.com: NXDOMAIN` nicht finden kasperd vor 5 Jahren 0
@kasperd: Es funktioniert nur für IPv4, sorry. Ich habe "dig" vermieden, da es nicht unter Windows ist. Ein guter Punkt in Bezug auf "myaddr" für Google, das wusste ich nicht! Ich denke, das Äquivalent von Windows `nslookup` wäre` nslookup -type = txt oo.myaddr.l.google.com ns3.google.com` Mehrdad vor 5 Jahren 1
Ich habe diesen Befehl auf einer Maschine ausgeführt, die sowohl IPv4 als auch IPv6 hat. Wenn IPv4 wirklich unterstützt würde, hätte es funktionieren sollen. Das Problem ist offensichtlich, dass Sie nicht angeben können "nslookup", welche IP-Version für den Transport verwendet werden soll. Andernfalls müssten Sie vorhersagen, welche IP-Version "nslookup" für den Transport verwendet, und entsprechend nach A oder AAAA fragen. Wenn Sie mit "nslookup" nicht weiterkommen, können Sie einen anderen Anbieter wie Google verwenden. Sie erhalten jedoch immer nur eine Protokollversion in der Antwort, und Sie können nicht auswählen, welche. kasperd vor 5 Jahren 0
Ich habe `nslookup -type = txt oo.myaddr.l.google.com ns3.google.com` getestet und das funktioniert tatsächlich. Wenn ich jedoch sowohl IPv4 als auch IPv6 habe, kann ich nicht auswählen, welche davon ich sehen kann. Am wahrscheinlichsten wird mir die IPv6-Adresse angezeigt, und höchstwahrscheinlich verwende ich sie, weil ich die IPv4-Adresse eines NAT wissen möchte. Um dies zu umgehen, müsste ein Dienst verwendet werden, der nur einen IPv4-Namen und einen nur IPv6-Namen hat. Dies würde auch das Problem von NAT64 ansprechen. kasperd vor 5 Jahren 0
Interessant, danke für die Info! Mehrdad vor 5 Jahren 0
@kasperd: Zuerst `AAAA` für` ns3.google.com` suchen, dann das resultierende IPv6 an `nslookup` übergeben, anstatt` ns3.google.com` übergeben. R.. vor 5 Jahren 0
@R .. Das würde in der Tat das Gleiche wie mit '-6' erreichen. Auf Dual-Stack-Systemen ist dies normalerweise der Standard. Wenn Sie die IPv4-Adresse haben möchten, müssen Sie stattdessen den A-Datensatz verwenden. Kein Ansatz würde Ihnen jedoch die externe IP eines NAT64 geben. kasperd vor 5 Jahren 0
7
VL-80

Ich möchte bereits vorhandenen Antworten einen Punkt hinzufügen.

Dies hängt auch von der Netzwerkkomplexität ab. Möglicherweise befindet sich Ihr Computer in einem Netzwerk, das über mehrere externe IP-Adressen verfügt, und der Router leitet den Datenverkehr nach einigen Kriterien an das Internet weiter, z. B. anhand der IP-Adresse des Ziels oder der Uhrzeit (möglicherweise Ein Uplink-Kanal ist nachts oder aus anderen Gründen billiger).

Um vollständig zu sein, muss der Begriff "externe IP-Adresse" möglicherweise einen Zielpunkt definieren, zu dem Ihre Adresse extern ist.

In dem folgenden Beispiel Router #2können Sie NAT ausführen und Datenverkehr an eine der Uplinks senden, und der empfangende Host kann eine andere externe IP-Adresse für die sehen Host.

Oder es könnte sein, dass ein bestimmtes Ziel (z. B. host1.example.com) immer durch die Route geleitet Uplink Awird und der Host host2.example.comimmer über leitet Uplink B. Also, Ihre externe IP - Adressen von diesen Hosts gesehen wird anders sein, vorausgesetzt, Uplink Aund Uplink Bsind verschiedene ISPs.

 Uplink A Uplink B ------------- ------------- | | | | | 192.168.1.1 192.168.50.50 | | ----------- | |---------------|Router #2|---------------| ----------- | 192.168.100.1 | | 192.168.100.2 ----------- |Router #1| ----------- | 192.168.200.1 | | 192.168.200.2 ----------- | Host | ----------- 

Durch das Senden von Datenverkehr werden zuverlässigere Ergebnisse erzielt.

4
kasperd

Sie können DNS anstelle von HTTP verwenden. Zum Beispiel können Sie verwenden:

dig +short TXT o-o.myaddr.l.google.com 

Dadurch wird die Unicast-Adresse des verwendeten DNS-Servers angezeigt. Wenn EDNS unterstützt wird, wird auch Ihre IP-Adresse angezeigt, die jedoch möglicherweise abgeschnitten ist.

Um Ihre vollständige IP-Adresse zu erhalten, können Sie Ihren lokalen DNS-Server umgehen und die obige Anfrage direkt an ns .google.com senden

dig +short TXT o-o.myaddr.l.google.com @ns3.google.com 

Wenn Sie möchten, dass Ihre IP - Adresse in einer bestimmten Protokoll Version sehen können Sie verwenden, -6und -4:

dig -6 +short TXT o-o.myaddr.l.google.com @ns3.google.com dig -4 +short TXT o-o.myaddr.l.google.com @ns3.google.com 

Sie können OpenDNS auch verwenden, wenn Sie dies vorziehen. OpenDNS verwendet hierfür keine TXT-Einträge, sondern A- und AAAA-Einträge. Sie müssen also angeben, nach welcher Protokollversion Sie suchen:

dig -6 +short AAAA myip.opendns.com @resolver2.opendns.com dig -4 +short A myip.opendns.com @resolver2.opendns.com 

Beachten Sie, dass, wenn Ihr Datenverkehr eine Protokollübersetzung durchläuft, andere oder gar keine Ergebnisse erzielt werden. Beim Testen von einem Computer hinter NAT64 konnte ich meine IPv6-Adresse mit den obigen Befehlen sehen, nicht jedoch die IPv4-Adresse des NAT64.

Diese Antwort basiert auf diesen Quellen 1 2 3 und ein wenig eigener Recherche.

2
user1532080

Web bezieht sich im Allgemeinen auf HTTP. Wenn dies die Bedeutung Ihrer Frage ist, können Sie beispielsweise STUN ( Wikipedia-Artikel ) verwenden, der für "Session Traversal Utilities for NAT" steht.

Nun, da es in einem Kommentar hervorgehoben wurde, haben Sie möglicherweise mehrere externe IPs. Da drahtlose Verbindungen immer häufiger werden (Ding 4G), ist es nicht unmöglich, dass die von Ihrem Router gemeldete IP-Adresse keine öffentliche ist. Ich habe sogar dieses Szenario in Bezug auf Glasfaserverbindungen in einigen Ländern kennengelernt, wo der ISP dem lokalen Router eine private IP geben würde, die später beim Verlassen ihres Netzwerks 1: 1 in eine öffentliche IP-Adresse übersetzt würde.

Wenn Ihre Frage also lautet: "Kann ich meine öffentliche IP-Adresse finden, ohne Pakete aus meinem Netzwerk zu senden", KÖNNEN Sie in Ihrem Kontext MÖGEN, aber es gibt keine 100% ige Beweislösung.