Windows-Befehl, der die externe IP zurückgibt
Gibt es einen Befehl, mit dem ich meine externe IP meines Routers oder meines NAT\DSL-Routers usw. finden kann, wodurch die Notwendigkeit entfällt, whatsmyip.net oder ähnliches zu besuchen.
Gibt es einen Befehl, mit dem ich meine externe IP meines Routers oder meines NAT\DSL-Routers usw. finden kann, wodurch die Notwendigkeit entfällt, whatsmyip.net oder ähnliches zu besuchen.
Sie könnten anstelle einer HTTP-Anfrage eine DNS-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: Das nachgestellte .
verhindert, dass Suchdomänen angehängt werden, was zu falschen Ergebnissen führen kann)
Unix-Version:
$ dig +short myip.opendns.com @resolver1.opendns.com
Schnappen Sie sich Ihre eigene Kopie von curl
von http://curl.haxx.se/download.html und dann einfach
curl "http://myexternalip.com/raw"
oder verwenden Sie powershell:
$wc = new-object System.Net.WebClient
$wc.DownloadString("http://myexternalip.com/raw")
(Haftungsausschluss: http://myexternalip.com wurde von mir erstellt)
Es gibt keinen eingebauten Befehl, um dies zu tun. Ein Teil des Problems besteht darin, dass, wenn Sie über einen Router mit dem Internet verbunden sind, Ihre Netzwerkhardware nicht direkt mit dem Internet verbunden ist, so dass Ihrem System keine spezifische IP zugewiesen ist. Es ist möglich, dass Sie in einigen Fällen sogar mehrere externe IPs haben, wenn Sie sich hinter einem Reverse-Proxy befinden, da viele Firmennetzwerke eingerichtet sind. Am besten ist es vielleicht, ein Skript zu erstellen, das whatismyip.org abfragt, oder zu versuchen, herauszufinden, ob bereits eine existiert.
(Als Tipp: whatismyip.org ist den meisten anderen Lösungen vorzuziehen, da es Ihre IP einfach als reinen Text zurückgibt - ohne überflüssigen Text, Links, Bilder oder anderen Müll. Es wäre viel einfacher, es in einem benutzerdefinierten Skript zu verwenden als die meisten anderen IP-Erkennungsseiten).
Das funktioniert gut, ich benutze es meistens mit psexec, wenn ich Client-Computerverbindungen inspiziere.
nslookup myip.opendns.com resolver1.opendns.com
Erstellen Sie eine Datei namens 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
Als nhinkle bemerkt wählen Sie am besten eine Website, die nur die IP und nicht HTML + Anzeigen usw. zurückgibt. wie:
(Quelle: ehemals http://externip.com/about )
Mit Powershell 3.0 (Windows 7-Standard ist 2.0) können Sie Invoke-WebRequest
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 damit tun möchten. Ich benutze diese Variable, um ein Skript zu erstellen, mit dem ich die dynamische IP meines Routers periodisch hochladen kann, eine andere Maschine in regelmäßigen Abständen die Kommunikation mit ihm testen lasse und dann das DNS mit der neuesten IP aktualisiere, wenn sie sich geändert hat, so dass ich von überall her auf meine Geräte zugreifen kann, indem ich einen Namen benutze, anstatt ständig der IP nachjagen zu müssen.
Und natürlich - wenn sich die Sites oder ihre Ausgaben ändern, werden Sie dies entsprechend aktualisieren wollen. :)
Vor einigen Monaten habe ich dafür dieses Batch-Skript 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
Es gibt Ihnen die Möglichkeit, die IP-Adresse in die Zwischenablage zu legen, und es setzt eine Umgebungsvariable - %PublicIP%
.
SIMPLER METHODE:
Nun, ich mache stattdessen einfach folgendes:
curl icanhazip.com
oder…
curl icanhazip.com | clip
…um die aktuelle öffentliche IP-Adresse in die Zwischenablage zu bekommen.
Sie brauchen cURL .
Ohne Programme von Drittanbietern ist es unter Windows schwer, da Telnet nicht standardmäßig mitgeliefert wird, aber wenn es da ist (XP) oder eingeschaltet ist (Windows Vista und höher), tippen Sie einfach:
telnet curlmyip.com 80
der Bildschirm blinkt, und Sie erhalten nur einen Cursor… Nächste Eingabe:
GET
In Großbuchstaben… Sie sehen dann die Kopfzeilen, gefolgt von Ihrer ip (und entschuldigen Sie, dass ich sie verwischt habe, sie zeigt nur, wo sie sein würde! ):
Andere Antworten hier funktionieren natürlich, aber ich versuche, mich an die Frage nach etwas zu halten, das auf allen Fenstern verwendet werden kann, ohne Programme von Drittanbietern!
Für 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”
Versuchen Sie dies: Es muss keine externe Software installiert sein.
@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));
}
ipchicken.com sendet Ihre scheinbare IP-Adresse im Textformat zurück, wenn Sie die zurückgesendete HTML-Datei, aus der Sie die externe IP Ihres Routers extrahieren, parsen können. Alternativ können Sie einen dieser dynamischen DNS-Agenten installieren, der Ihre scheinbare externe IP in einen FQDN aktualisiert, und dann einfach nslookup auf Ihrem FQDN durchführen, um Ihre aktuelle IP-Nummer zu sehen. Früher gab es kostenlose Agenten wie DynDNS, aber die meisten von ihnen erfordern jetzt ein kostenpflichtiges Abonnementkonto.