Ist es möglich, meine externe IP-Adresse zu sehen, ohne eine ausgehende Webanfrage zu stellen?

21

Ist es bei einer NAT-Verbindung möglich, Ihre externe IP-Adresse anzuzeigen, ohne eine ausgehende Webanfrage zu stellen?

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

Axel Persinger
quelle
7
Versuchen Sie nur, HTTP zu vermeiden, oder versuchen Sie überhaupt, ausgehenden Datenverkehr zu vermeiden? Die einzige universelle Lösung besteht darin, ausgehenden Datenverkehr zu senden, es muss sich jedoch nicht um HTTP handeln.
Spiff
Dies war eher eine Hypothese, ich wollte überhaupt keinen ausgehenden Verkehr machen.
Axel Persinger
2
Wollen Sie damit sagen, dass sich Ihr Netzwerk / Router hinter einem NAT-Setup der Enterprise-Klasse befindet (dh, er erhält eine private IP-Adresse von Ihrem ISP)? In diesem Fall kann ich mir nicht vorstellen, dass Sie die öffentliche IP-Adresse finden können, ohne das öffentliche Netzwerk zu erreichen und im Wesentlichen wie whatsmyip.com oder ähnliche Dienste "zurückzublicken".
Acejavelin
Der Hack, den ich gemacht habe, war die Überprüfung mit meinem Router - ich hatte tatsächlich ein wirklich schmutziges Skript, um das zu kratzen, da aus irgendeinem Grund die meisten webbasierten Dienste meine IP nicht richtig erkennen würden. Mein ISP macht auf diese Weise wirklich Spaß.
Geselle Geek
2
Sie können versuchen, Ihren ISP mit Ihren Kundendaten anzurufen. Benötigt keine Internetverbindung und keinen Computer.
Thomas

Antworten:

24

Befindet sich Ihr Computer hinter NAT, können Sie möglicherweise die externe IP-Adresse Ihres Routers anzeigen, benötigen jedoch Administratorzugriff auf den Router.

Der Router kennt Ihre externe IP-Adresse. Durch Aufrufen der Konfigurationsseite können Sie diese IP-Adresse ermitteln. Auf diese Weise ist kein spezielles Tool außer einem Webbrowser erforderlich.

Andere Protokolle, für die ein Tool zum Abrufen der Informationen erforderlich ist:

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

Harrymc
quelle
@NicHartley-Übertreibung kann sicherlich Teil des Sarkasmus sein, aber bei Sarkasmus geht es eher um einen Ton oder eine Absicht zum Verspotten, die beide in Textform anders vermittelt werden als persönlich. Das heißt, während jedes Protokoll IP verwenden muss, um eine IP-Adresse zu bestimmen, ist dies eine offensichtliche und ja tautologische Anforderung (da Sie nicht bestimmen können, was Sie nicht verwenden), aber ein Protokoll, das auf IP aufbaut, ist immer noch ein anderes Protokoll und es gibt Theoretisch könnte man mehrere verwenden, um dieses Ziel zu erreichen. Der Punkt von Lightness war, der Behauptung über das Erfordernis einer Webanfrage entgegenzutreten.
eques
2
„Jede andere Art und Weise erfordert eine externe Web antrag“ Web (dh HTTP) ist nicht erforderlich, aber am einfachsten vielleicht zu begreifen
eques
1
Wie in der anderen Antwort erwähnt, bieten uPnP, NAT-PMP und PCP neben dem Zugriff auf die Konfigurationsseite verschiedene Möglichkeiten, um die Informationen vom Router abzurufen. So wie Sie es formuliert haben, sieht es so aus, als ob "neben dem Zugriff auf die Konfigurationsseite für jede andere Möglichkeit eine Webanforderung erforderlich ist". Richtig ist, dass "neben dem Abrufen der Informationen vom Router auf jede andere Weise ein Verbindungsversuch für ausgehende Verbindungen erforderlich ist" (dies muss keine Webanforderung sein).
Dirkt
@dirkt: Für UPnP bin ich nicht überzeugt; NAT-PMP funktioniert meiner Meinung nach nur mit IPv4; PCP im IPv6-Netzwerk gibt das IPv6-Präfix zurück und kann noch viel mehr. Dies ist jedoch in der Regel auf kommerziellen Routern nicht implementiert.
Harrymc
1
@harrymc: Der UPnP-Dienst-Endpunkt für meine Fritzbox ist WANIPConn1/GetExternalIPAddressund er hat gerade erfolgreich die richtige Adresse zurückgegeben.
Dirkt
12

Es gibt einige Möglichkeiten, die mit einigen NATs funktionieren, aber keine, die garantiert überall funktionieren.

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. Unterstützung ist bei Heim-Gateway-Routern üblicher als bei NAT-Lösungen für Unternehmen oder Netzbetreiber.

Wenn Sie sich hinter einem NAT befinden, können Sie nur dann sicher feststellen, in welche öffentliche IP-Adresse der Datenverkehr übersetzt wird, wenn Sie ausgehenden Datenverkehr an einen öffentlichen Host senden, der auf eine Weise zurückmeldet, dass das NAT nicht übersetzt, was Adresse, von der Ihr Verkehr zu kommen schien. Die Verwendung eines webbasierten Dienstes ist eine Möglichkeit. Sie können dies jedoch auch tun, indem sshdSie beispielsweise eine SSH- Verbindung zu einer Cloud-Server-Instanz herstellen und feststellen, woher Ihre SSH-Sitzung stammt.

Spiff
quelle
8
Auch UPnP etc. könnte ein falsches Ergebnis liefern, wenn das System hinter doppeltem (oder mehr) NAT steckt.
user71659
@ user71659 Ich habe mich gefragt, ob es eine Anycast-Adresse gibt, die automatisch an die äußerste NAT weitergeleitet wird, sodass sie für diese Art von Anforderungen verwendet werden kann.
Kasperd
1
@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.
user253751
1
@ user20574 Nein, NATs denken nicht so, die meisten kümmern sich nur nicht darum. Wenn eine solche Anycast-Adresse definiert werden soll, muss der Standard auch definieren, wann ein NAT diese IP sich selbst zuweist und wann nicht. Die Antwort darauf lautet: Wenn die externe IP in RFC 1918 oder RFC 6598 enthalten ist, weist sich das NAT die Anycast-Adresse nicht selbst zu.
Kasperd
8

Sie können eine DNS-Anfrage verwenden, von der ich glaube, dass sie nicht unter die Kategorie "Webanfrage" fällt:

nslookup myip.opendns.com resolver1.opendns.com
Mehrdad
quelle
1
Sie können auch verwenden dig +short @8.8.8.8 o-o.myaddr.l.google.com txt | grep edns. Ich habe den Befehl hier gefunden: groups.google.com/d/msg/public-dns-discuss/uyzmMcHQBE0/…
kasperd
Ihr nsslookupBefehl schlägt für mich fehl. Ich bekomme Server: resolver1.opendns.com Address: 2620:119:35::35#53 ** server can't find myip.opendns.com: NXDOMAIN
Kasperd
1
@kasperd: Es funktioniert nur für IPv4, sorry. Ich habe es vermieden, digda es nicht unter Windows läuft. Ein guter Punkt myaddrfür Google, das war mir nicht bewusst! Ich denke, das Windows- nslookupÄquivalent wärenslookup -type=txt o-o.myaddr.l.google.com ns3.google.com
Mehrdad
Ich habe diesen Befehl auf einem Computer ausgeführt, der sowohl IPv4 als auch IPv6 hat. Wenn IPv4 also wirklich unterstützt wird, sollte es funktionieren. Das Problem ist anscheinend, dass Sie nicht festlegen können, nslookupwelche IP-Version für den Transport verwendet werden soll, aber wie OpenDNS dies tut, müssen Sie dies tun. Andernfalls müssten Sie vorhersagen, welche IP-Version nslookupfür den Transport verwendet wird, und entsprechend nach A oder AAAA fragen. Wenn Sie nicht weiterkommen nslookup, können Sie einen anderen Anbieter wie Google verwenden. Sie erhalten jedoch nur eine Protokollversion in der Antwort und können nicht auswählen, welche.
Kasperd
Ich habe getestet nslookup -type=txt o-o.myaddr.l.google.com ns3.google.comund das funktioniert in der Tat. Aber wenn ich sowohl IPv4 als auch IPv6 habe, kann ich nicht auswählen, welche von ihnen ich sehen möchte. Höchstwahrscheinlich 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 einen Nur-IPv4-Namen und einen Nur-IPv6-Namen hat und der auch das Problem von NAT64 behebt.
Kasperd
7

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

Dies hängt auch von der Netzwerkkomplexität ab. Es ist möglich, dass sich Ihr Computer in einem Netzwerk mit mehreren externen IP-Adressen befindet und der Router den Datenverkehr anhand einiger Kriterien an das Internet sendet: z. B. Ziel-IP-Adresse oder Uhrzeit (möglicherweise) Ein Uplink-Kanal ist nachts oder aus anderen Gründen günstiger.

Um vollständig zu sein, muss für den Begriff "externe IP-Adresse" möglicherweise ein Zielpunkt definiert werden, zu dem Ihre Adresse extern ist.

Im folgenden Beispiel Router #2könnte NAT ausgeführt und Datenverkehr an beide Uplinks gesendet werden, und der empfangende Host könnte andere externe IP-Adressen für die anzeigen Host.

Oder es kann sein, dass ein bestimmtes Ziel (zum Beispiel host1.example.com) immer durch die Route Uplink Aführt und der Host host2.example.comimmer über die Route führt 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  |
                      -----------

Wenn Sie also Datenverkehr senden, erhalten Sie zuverlässigere Ergebnisse.

VL-80
quelle
4

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

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

Hier wird die Unicast-Adresse des von Ihnen verwendeten DNS-Servers angezeigt. Wenn EDNS unterstützt wird, wird auch Ihre IP-Adresse angezeigt, auch wenn diese möglicherweise abgeschnitten ist.

Um Ihre vollständige IP-Adresse zu erhalten, können Sie Ihren lokalen DNS-Server umgehen und die oben aufgeführte Anfrage direkt an ns {1,2,3,4} .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 auch OpenDNS 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 bei einer Protokollübersetzung Ihres Datenverkehrs möglicherweise andere oder gar keine Ergebnisse erzielt werden. Testen von einem Computer hinter NAT64 Ich konnte meine IPv6-Adresse mit den obigen Befehlen sehen, aber nicht die IPv4-Adresse des NAT64.

Diese Antwort basiert auf diesen Quellen 1 2 3 und ein bisschen meiner eigenen Forschung.

Kasperd
quelle
2

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

Jetzt, da es in einem Kommentar hervorgehoben wurde, können Sie mehrere externe IPs haben. Auch wenn drahtlose Verbindungen immer häufiger werden (Ding 4G), ist es nicht unmöglich, dass die von Ihrem Router gemeldete IP-Adresse nicht öffentlich ist. Ich habe dieses Szenario sogar bei Glasfaserverbindungen in einigen Ländern erlebt, in denen der Internetdienstanbieter dem lokalen Router eine private IP-Adresse gab, die beim Verlassen des Netzwerks 1: 1 in eine öffentliche IP-Adresse umgewandelt wurde.

Wenn Sie also die Frage haben, ob ich meine öffentliche IP-Adresse finden kann, ohne Pakete aus meinem Netzwerk zu senden, können Sie dies möglicherweise in Ihrem Kontext tun, aber es gibt keine 100% ige Beweislösung.

user1532080
quelle