Wie erhalte ich meine externe IP-Adresse (über NAT) über die Windows-Befehlszeile? [Duplikat]

13

Der Windows- Befehl "ipconfig" kann mir nur die Parameter der Ethernet-Schnittstellen von meinem Computer anzeigen (auch mit dem ipconfig /allArgument). Es kann detaillierte Informationen über die Schnittstelle anzeigen, zeigt mir jedoch niemals meine externe IP-Adresse über ein NAT- Netzwerk an.

ipconfig / all - Windows-Screenshot

Es gibt jedoch mehrere Websites, z. B. "Wie lautet meine IP-Adresse?" , Auf denen meine externe IP-Adresse abgerufen und angezeigt werden kann. Ich frage mich also, ob es möglich ist, diesen Wert extern abzurufen. Sollte ich damit rechnen, dass es eine Möglichkeit gibt, diese Informationen über eine Befehlszeile auf meinem lokalen Computer abzurufen?

Ich brauche diesen Wert, um mich bei einer Anwendung anzumelden, die ich mit VBScript mache . Gibt es eine Möglichkeit, dies cmdunter Windows zu tun ?

Diogo
quelle
Beachten Sie, dass HTTP-basierte what-is-my-IP-Dienste möglicherweise die IP-Adresse eines Proxyservers angeben. (Und bevor jemand darauf hinweist, dass HTTPS-Proxys existieren, können Sie HTTPS nicht transparent vertreten . Wenn Sie eines haben, wissen Sie es.)
billpg

Antworten:

11

Mit der von Oliver bereitgestellten Site kann dies nun in VBScript erfolgen.

Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://ifconfig.me/ip", False
o.send
WScript.StdOut.Write o.responseText

Es gibt eine ähnliche Methode für PowerShell.

Bob
quelle
Schön, dass es geklappt hat. Ich werde es in mein Programm einfügen. Es ist eine gute Lösung für mein Problem. Vielen Dank.
Diogo
Hmm, es wird ein "Zugriff verweigert" in Zeile 4, Zeichen 1 für dieses Skript zurückgegeben. Sie können es sogar über eine Administratorrechte-Befehlszeile ausführen ... Wissen Sie, warum?
Diogo
@ DiogoRocha Ich weiß nicht warum. Fiaskos ist wahrscheinlich zuverlässiger. Es ist auch möglich, dass Sie eine Firewall oder etwas haben, das den Internetzugang zu wscript/ blockiert cscript.
Bob
10

Das Problem ist, dass es nicht Ihre IP-Adresse ist. Dies ist die IP-Adresse Ihres Routers.

Sie können es also niemals abrufen, ohne Ihren Router zu durchlaufen. Am einfachsten ist es, wenn der Router eine Website für Sie abruft (wie Sie bereits bemerkt haben). Weil der Router seine IP-Adresse verwendet, um diese Site abzurufen.

Abgesehen davon können Sie es sich leicht machen, indem Sie ifconfig.me/ip verwenden . Nun, wenn curlja, sind Sie bereits fertig, wenn nicht: Wget / cURL Alternative zu Windows?

Der Hochstapler
quelle
1
Das Laden von ifconfig.me/ip hat lange gedauert. whatismyip.org gibt Ihnen eine identische Klartext-IP und war viel schneller.
Nhinkle
1
@nhinkle Das kann jedoch von Ihrem Standort abhängen. Beide scheinen die gleiche Ladezeit für mich zu haben, aber die Ping-Antwortzeit von ifconfig.me beträgt die Hälfte (139 ms gegenüber 250 ms). Was wahrscheinlich wichtiger ist, ist, dass der Service so lange wie möglich verfügbar ist, aber wir haben wirklich keine Ahnung.
Bob
An den externen IP-Adressen meines Routers ist nichts auszusetzen, wenn man die Regeln für die Portweiterleitung und IPv4 berücksichtigt.
mbx
5

Erstellen Sie ein VB-Skript, das Sie nach Belieben ausführen können.

Tippe dies in eine txt-Datei:

Option Explicit
Dim http : Set http = CreateObject( "MSXML2.ServerXmlHttp" )
http.Open "GET", "http://icanhazip.com", False
http.Send
Wscript.Echo http.responseText   'or do whatever you want with it
Set http = Nothing

Schließen Sie die txt-Datei und benennen Sie sie in ip.vbs um (speichern Sie sie in diesem Beispiel in C:)

In Windows öffnen Sie ein DOS-Fenster (run cmd) ( ha! Ich habe gerade festgestellt, wenn Sie tauschen, dass es ausgeführt wird dmc !! )

Stellen Sie sicher, dass Sie sich in c: / befinden (wenn nicht, geben Sie c: ein und drücken Sie die Eingabetaste, dann cd .. und geben Sie ein paar Mal ein, bis C:> angezeigt wird.)

Geben Sie an der Eingabeaufforderung Folgendes ein:

cscript ip.vbs

und Sie sehen sofort Ihre externe IP.

Wenn Sie die VBS-Datei auf einen USB-Schlüssel oder Ähnliches legen (und daran denken, cscript ip.vbs an der DOS- Eingabeaufforderung auszuführen - stellen Sie jedoch sicher, dass Sie sich im selben Verzeichnis wie die ip.vbs-Datei befinden), können Sie dies mitnehmen Überall können Sie die VBS-Datei auf einem beliebigen Computer ausführen, um deren externe IP-Adresse anzuzeigen.

Eine weitere Anmerkung: Die Zeile mit der Adresse für icanhazip.com kann in eine der folgenden geändert werden:

http://myip.dnsomatic.com
http://whatismyip.org
http://icanhazip.com
http://www.whatismyip.com/automation/n09230945.asp
http://externip.com

Bearbeiten, Sie können die Datei ip.vbs auch in Windows ausführen, ohne zu einem DOS-Fenster zu wechseln, und sie wird nur in einem kleinen Popup-Fenster angezeigt.

Champ
quelle
icanhazip.com hat eine sehr kurze Reaktionszeit, die besser ist als ipconfig.me/ip hier in der Mitte Europas.
modiX
3

Um eine externe IP-Adresse zu erhalten, müssen Sie etwas außerhalb des Netzwerks fragen und es zurückmelden lassen, wie Ihre IP-Adresse für das Netzwerk "erscheint". Dies kann durch Skripterstellung erfolgen, indem eine Seite abgefragt wird, auf der das Ergebnis einfach analysiert und die IP-Adresse abgerufen werden kann. In Windows ist jedoch kein Tool integriert, mit dem Sie lediglich die externe IP-Adresse ermitteln können. Sie müssen eine selbst schreiben oder finden und herunterladen.

Scott Chamberlain
quelle
2

Wenn Sie DynDNS verwenden , um Ihrer DHCP-IP-Adresse einen Domain-Namen zuzuweisen, können Sie nslookupIhren Domain-Namen anpingen (falls Ihr Router so konfiguriert ist, dass er antwortet) und die IP-Adresse daraus extrahieren.

Das einzige andere Windows-Dienstprogramm ist traceroute, aber es zeigt nur das ausgehende Gateway an, mit dem Sie eine Verbindung herstellen, nicht die IP-Adresse Ihres Routers, die eine Verbindung zu diesem Gateway herstellt.

Bearbeiten: Da das Extrahieren der IP-Adresszeichenfolge ein bisschen Parsing erfordert und ifconfig.meeine nette, spärliche Antwort hat, gibt es hier eine kleine Variante von Bobs Skript, mit der die Funktion auf keine Antwort testen und eine nette, saubere IP zurückgeben kann Adresse zur Verwendung in einem Skript, wenn der Server in Betrieb ist.

wscript.echo WAN_IP()

function WAN_IP()
    set obj = createobject("Microsoft.XMLHTTP")
    call obj.open("get", "http://ifconfig.me/ip", false)
    obj.send()

    strresponse = obj.responsetext
    set obj = nothing

    if strresponse <> "" then
        strIP = strresponse
    else
        strIP = "Unavailable"
    end if

    WAN_IP = trim(strIP)

end function
Fiasco Labs
quelle
1

Wenn Ihr Router Universal Plug & Play (UPnP) unterstützt, können Sie die IP-Adresse (n) abfragen.

Unter Windows können Sie solche Informationen mit WMI und über die Befehlszeile mit dem WMIC-Tool abfragen.

Robert
quelle
2
Könnten Sie ein Beispiel geben? Das würde mich sehr interessieren.
Der Hochstapler
1

Wie andere bereits gesagt haben, müssen Sie sich auf einen externen Dienst verlassen. Ich würde empfehlen, http://www.externalip.net

Sie können http://api.externalip.net/ip verwenden , um die IP im Nur-Text-Format abzurufen. Es hat sich als schnell und zuverlässig erwiesen und ist unbegrenzt einsetzbar.


quelle