it-swarm.com.de

Windows-Befehl, der die externe IP-Adresse zurückgibt

Gibt es einen Befehl, mit dem ich meine externe IP-Adresse meines Routers oder meines NAT\DSL-Routers usw. finden kann, sodass whatsmyip.net oder ähnliches nicht mehr aufgerufen werden muss?.

53
Junaid Saeed

Es gibt keinen eingebauten Befehl, um dies zu tun. Ein Teil des Problems ist, dass Ihre Netzwerkhardware nicht direkt mit dem Internet verbunden ist, wenn Sie über einen Router mit dem Internet verbunden sind, sodass Ihrem System keine spezifische IP zugewiesen wird. Es ist möglich, dass Sie in einigen Fällen sogar mehrere externe IP-Adressen haben, wenn Sie sich hinter einem Reverse-Proxy befinden, da viele Unternehmensnetzwerke eingerichtet sind. Am besten erstellen Sie ein Skript, das whatismyip.org abfragt, oder versuchen, herauszufinden, ob eines bereits vorhanden ist.

(Als Tipp ist whatismyip.org den meisten anderen Lösungen vorzuziehen, da es nur Ihre IP als reinen Text zurückgibt - kein überflüssiger Text, Links, Bilder oder anderer Müll. Es wäre viel einfacher in einem benutzerdefinierten Skript zu verwenden als die meisten anderen die anderen IP-Erkennungsstellen.)

14
nhinkle

Sie könnten eine DNS-Anfrage anstelle einer HTTP-Anfrage verwenden, um Ihre öffentliche IP herauszufinden:

C:\> nslookup myip.opendns.com. resolver1.opendns.com

Es verwendet den DNS-Server resolver1.opendns.com, um den magischen Hostnamen myip.opendns.com. in Ihre IP-Adresse aufzulösen. (Hinweis: Der nachfolgende . in der Suche verhindert, dass Suchdomänen angehängt werden, was zu falschen Ergebnissen führen kann.)

Unix-Version:

$ Dig +short myip.opendns.com @resolver1.opendns.com
97
jfs

schnappen Sie sich Ihre eigene Kopie von curlfrom http://curl.haxx.se/download.html und dann einfach

curl "http://myexternalip.com/raw"

oder benutze Powershell:

$wc = new-object System.Net.WebClient
$wc.DownloadString("http://myexternalip.com/raw")

(Haftungsausschluss: http://myexternalip.com wurde von mir erstellt)

28
akira

Erstellen Sie eine Datei mit dem Namen ip.vbs und kopieren Sie Folgendes hinein:

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

Ausführen mit

C:\>cscript ip.vbs

Wie nhinkle zur Kenntnis genommen , ist es am besten, eine Site zu wählen, die nur die IP und keine HTML + -Anzeigen usw. zurückgibt, wie:

(Quelle: früher http://externip.com/about )

6
hyperslug

Das funktioniert gut, ich benutze es meistens mit psexec, wenn ich Client-Computer-Verbindungen überprüfe.

nslookup myip.opendns.com resolver1.opendns.com
6
Antti Lagus

Mit Powershell 3.0 (Windows 7-Standard ist 2.0) können Sie Invoke-WebRequest verwenden.

Für IPv4:

$tmp =Invoke-WebRequest -URI http://myip.dnsomatic.com/
$tmp.Content

Für IPv6:

$tmp =Invoke-WebRequest -URI http://myexternalip.com/raw
$tmp.Content

Dies gibt Ihnen eine Variable, mit der Sie arbeiten können, wenn Sie etwas Bestimmtes haben, das Sie damit tun möchten. Ich verwende dies tatsächlich, um ein Skript zu erstellen, mit dem die dynamische IP meines Routers in regelmäßigen Abständen hochgeladen, eine andere Testkommunikation durchgeführt und anschließend das DNS mit der neuesten IP aktualisiert wird, falls sich diese geändert hat, sodass ich von überall aus auf meine Ausrüstung zugreifen kann Verwenden Sie einen Namen, anstatt ständig die IP zu jagen.

Und natürlich - wenn sich die Websites oder deren Ausgaben ändern, sollten Sie dies entsprechend aktualisieren. :)

5
Bradley Forney

Ich habe dieses Batch-Skript dazu vor ein paar Monaten erstellt:

@echo off

:: WhatIsMyIP.cmd - returns public IP address
:: requires: wget.exe

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP

wget -q -O %temp%\MyIP http://www.whatismyip.com/automation/n09230945.asp
for /f "delims= " %%G in (%temp%\myip) do set PublicIP=%%G & del %temp%\MyIP
echo. & echo Your public IP address is %PublicIP% & echo.
if [%1]==[--clip] echo %PublicIP% | clip
goto :EOF

:HELP
echo. & echo Usage: whatismyip [--clip] & echo.
goto :EOF

:EOF

Sie haben die Möglichkeit, die IP-Adresse in die Zwischenablage zu kopieren und eine Umgebungsvariable festzulegen - %PublicIP%.


EINFACHERE METHODE:

Jetzt mache ich das einfach stattdessen:

curl icanhazip.com

oder...

curl icanhazip.com | clip

... um die aktuelle öffentliche IP-Adresse in die Zwischenablage zu bekommen.

Du brauchst cURL .

5
paradroid

Ohne Programme von Drittanbietern ist Windows hart, da Telnet nicht standardmäßig bereitgestellt wird. Wenn es jedoch vorhanden (XP) oder eingeschaltet ist (Windows Vista und höher), geben Sie einfach Folgendes ein:

telnet curlmyip.com 80

der Bildschirm blinkt und Sie erhalten nur einen Cursor ... Nächster Typ:

GET

In Großbuchstaben ... sehen Sie dann die Überschriften, gefolgt von Ihrer IP-Adresse (und es tut mir leid, dass ich sie verwischt habe, nur um zu zeigen, wo sie wäre!):

enter image description here

Andere Antworten funktionieren hier natürlich, aber ich versuche, die Frage nach etwas zu beantworten, das in jedem Fenster ohne Programme von Drittanbietern verwendet werden kann!

Unter Windows Vista und höher können Sie Telnet einfach (und sicher) über Programs and features installieren oder den folgenden Befehl verwenden:

pkgmgr /iu:”TelnetClient”
3
William Hilsum

Versuche dies:
Benötigt keine externe Software.

@set @script=0 /*
  @echo off
    set @script=
    cscript //nologo //e:jscript "%~dpnx0"
  exit /b
*/

with (new ActiveXObject('Microsoft.XMLHTTP')) {
   open('GET', 'http://internet.yandex.ru/', false);
   send();

   WScript.echo(responseText.match(/IPv4:\s(\d+\.){3}\d+/g));
}
3

Sie können ifcfg.me verwenden. Es unterstützt einige interne Befehle, die standardmäßig mit Windows geliefert werden.

curl ifcfg.me
nslookup . ifcfg.me
telnet ifcfg.me
ftp ifcfg.me
finger @ifcfg.me
2
Eun

Ich wollte eine Lösung, die für Windows funktioniert, ohne Tools von Drittanbietern zu installieren. Also habe ich die Option powershell gewählt, die jede Stunde ein Skript ausführen soll.

Sie erstellen dieses Skript mit Notepad

$wc = new-object System.Net.WebClient
$ip = $wc.DownloadString("http://myexternalip.com/raw")
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt $LogTime
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt "`n"
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt $ip
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt "`n"

und speichern Sie es als getIP.ps1 irgendwo. Sie können dieses Skript entweder direkt in Powershell aufrufen oder den Aufgabenplaner verwenden, wie ich es getan habe. Dies ist der Befehl zum Ausführen von:

powershell -executionpolicy bypass -File C:\Users\Administrator\Desktop\getIP.ps1

Im Taskplaner legen Sie eine neue Aufgabe an. Bei Trigger verwenden Sie die Einstellung täglich für jeden Tag und bei erweiterter Option wählen Sie stündlich für die Dauer von sofort . Aktivieren Sie außerdem Task so schnell wie möglich ausführen, nachdem ein geplanter Start verpasst wurde in den Einstellungen . Unter Aktion fügen Sie den obigen Ausführungscode ein.

Der Powershell-Code kann optimiert werden, da ich kein Powershell-Guru bin (das erste Mal damit). Jetzt teste ich, ob das Skript stündlich aufgerufen wird.

1
testing

Folgendes habe ich herausgefunden: Es ist möglich, einen eingebauten Befehl zu verwenden, um die öffentliche IP-Adresse abzurufen, aber Sie haben Zugang zum Internet

telnet icanhazip.com

oder

telnet myip.gelma.net
1
Sam

ipchicken.com gibt Ihre scheinbare IP-Adresse im Textformat zurück, wenn Sie den zurückgegebenen HTML-Code analysieren können, den Sie für die externe IP-Adresse Ihres Routers verwenden. Alternativ können Sie einen dieser dynamischen DNS-Agenten installieren, der Ihre scheinbare externe IP-Adresse auf einen vollqualifizierten Domänennamen aktualisiert, und anschließend Ihren vollqualifizierten Domänennamen nachschlagen, um Ihre aktuelle IP-Nummer anzuzeigen. Früher gab es kostenlose wie DynDNS, aber die meisten von ihnen benötigen jetzt ein kostenpflichtiges Abonnementkonto.

0
anthonymaw