Windows-Befehl, der 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 zu besuchen whatsmyip.net oder ähnlich.

Author: Marcks Thomas, 2010-07-21

15 answers

Dafür gibt es keinen eingebauten Befehl. 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, sodass Ihrem System keine IP zugewiesen wurde. 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 Unternehmensnetzwerke eingerichtet sind. Ihre beste Wette könnte sein, ein Skript zu erstellen, das Abfragen whatismyip.org, oder versuchen, Sie zu finden, wenn man existiert bereits.

(Als Tipp, whatismyip.org ist den meisten anderen Lösungen vorzuziehen, da es nur Ihre IP als Klartext 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 IP-Erkennungsseiten.)

 17
Author: nhinkle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-07-21 06:28:20

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

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

Es verwendet resolver1.opendns.com DNS-Server, um den magischen myip.opendns.com. Hostnamen in Ihre IP-Adresse aufzulösen. (Hinweis: Das nachgestellte . auf 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
 132
Author: jfs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-06-01 18:23:46

Nimm deine eigene Kopie von curlvon http://curl.haxx.se/download.html und dann nur

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)

 39
Author: akira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-06-26 08:16:39

Das funktioniert gut, ich benutze es meistens mit psexec, wenn ich Client-Computerverbindungen inspiziere.

nslookup myip.opendns.com resolver1.opendns.com
 8
Author: Antti Lagus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-04-23 08:25:29

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 bemerkte, ist es am besten, eine Site auszuwählen, die nur die IP und nicht HTML + ads usw. zurückgibt. wie:

(Quelle: ehemals http://externip.com/about)

 7
Author: hyperslug,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-20 10:17:45

Ich habe vor ein paar Monaten 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 einzufügen 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.

Sie benötigen cURL.

 5
Author: paradroid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-07-17 22:11:34

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

Dadurch erhalten Sie eine Variable, mit der Sie arbeiten können, wenn Sie etwas Bestimmtes damit tun möchten. Ich verwende dies tatsächlich, um ein Skript zu erstellen, um die dynamische IP meines Routers regelmäßig hochzuladen, die Kommunikation eines anderen Computers in regelmäßigen Abständen zu testen und dann DNS mit der neuesten IP zu aktualisieren, wenn sie sich geändert hat, damit ich darauf zugreifen kann meine Ausrüstung von überall mit einem Namen, anstatt ständig die IP jagen zu müssen.

Und natürlich-wenn sich die Sites ändern oder sich ihre Ausgaben ändern, möchten Sie dies entsprechend aktualisieren. :)

 5
Author: Bradley Forney,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-12-07 12:43:41

Versuche das:
Benötigt keine externe Software installiert.

@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
Author: Filipe YaBa Polido,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-12-05 15:40:30

Ohne Programme von Drittanbietern ist es unter Windows schwierig, da Telnet standardmäßig nicht bereitgestellt wird, aber wenn es vorhanden (XP) oder aktiviert 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ächste Typ:

GET

In Großbuchstaben... sie sehen dann die Header, gefolgt von Ihrer IP (und entschuldigung, ich habe sie verwischt und nur gezeigt, wo sie sein würde!):

geben Sie hier die Bildbeschreibung ein

Andere Antworten hier funktionieren offensichtlich, aber ich versuche, daran festzuhalten die Frage nach etwas, das auf jedem Windows 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”
 3
Author: William Hilsum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-01-15 01:04:17

Sie können ifcfg.me. 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
Author: Eun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-05-13 14:40:59

Ich wollte eine Lösung haben, die für Windows funktioniert, ohne Tools von Drittanbietern zu installieren. Also nahm ich die Option powershell, die jede Stunde ein Skript ausführen sollte.

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 speichere es irgendwo als getIP.ps1. Sie können dieses Skript entweder direkt in Powershell aufrufen oder den Taskplaner wie ich verwenden. Dies ist der Befehl zum Ausführen:

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

Im Taskplaner erstellen Sie eine neue Aufgabe. Am Trigger - Sie verwenden Sie die Einstellung täglich für jeden Tag und unter erweiterte Option wählen Sie jede Stunde für die Dauer von sofort. Überprüfen Sie auch Task so schnell wie möglich ausführen, nachdem ein geplanter Start verpasst wurde in den Einstellungen. Unter Action fügen Sie den obigen Ausführungscode ein.

Der Powershell-Code kann optimiert werden, da ich kein Powershell-Guru bin (mein erstes Mal damit). Jetzt teste ich, ob das Skript jede Stunde aufgerufen wird.

 1
Author: testing,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-10-07 22:09:34

Hier ist, was ich herausgefunden habe, es ist möglich, den eingebauten Befehl zu verwenden, um eine öffentliche IP-Adresse zu erhalten, aber Sie haben Zugriff auf das Internet

telnet icanhazip.com

Oder

telnet myip.gelma.net
 1
Author: Sam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-10-07 22:40:36

Ipchicken.com gibt Ihre scheinbare IP-Adresse im Textformat zurück, wenn Sie das zurückgegebene HTML analysieren können, aus dem Sie die externe IP Ihres Routers extrahieren. Alternativ können Sie einen dieser dynamischen DNS-Agenten installieren, der Ihre scheinbare externe IP auf einen FQDN aktualisiert, und dann einfach nslookup auf Ihrem FQDN durchführen, 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
Author: anthonymaw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-11-08 19:54:03

Neueste Fenster haben curl Befehl build-in. Geben Sie einfach

curl ip-adresim.app

Und es wird Ihr öffentliches IPv4 oder IPv6 zurückgegeben.

 0
Author: ilhan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-12-30 21:33:33

Aus Powershell:

(Invoke-WebRequest -uri "http://ifconfig.me/ip").Content

Gutschrift: http://woshub.com/get-external-ip-powershell/

 0
Author: mpowrie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2021-01-12 04:35:14