Windows commando dat externe IP
retourneert Is er een commando waarmee ik mijn externe IP van mijn router of mijn NAT\DSL Router, etc. kan vinden, waardoor het niet meer nodig is om whatsmyip.net of iets dergelijks te bezoeken.
retourneert Is er een commando waarmee ik mijn externe IP van mijn router of mijn NAT\DSL Router, etc. kan vinden, waardoor het niet meer nodig is om whatsmyip.net of iets dergelijks te bezoeken.
U zou een DNS verzoek kunnen gebruiken in plaats van een HTTP verzoek om uw publieke IP te achterhalen:
C:\> nslookup myip.opendns.com. resolver1.opendns.com
Het gebruikt resolver1.opendns.com
dns server om de magische myip.opendns.com.
hostnaam op te lossen naar uw ip adres. (Opmerking: de trailing .
op de lookup voorkomt dat zoekdomeinen worden toegevoegd, wat onjuiste resultaten kan opleveren.)
Unix versie:
$ dig +short myip.opendns.com @resolver1.opendns.com
pak je eigen exemplaar van curl
van http://curl.haxx.se/download.html en dan alleen
curl "http://myexternalip.com/raw"
of gebruik powershell:
$wc = new-object System.Net.WebClient
$wc.DownloadString("http://myexternalip.com/raw")
(disclaimer: http://myexternalip.com is door mij gemaakt)
Er is geen ingebouwd commando om dit te doen. Een deel van het probleem is dat wanneer je via een router met het internet verbonden bent, je netwerkhardware niet direct met het internet verbonden is, zodat je systeem niet specifiek een IP toegewezen krijgt. Het is mogelijk dat u in sommige gevallen zelfs meerdere externe IP’s heeft als u achter een reverse proxy zit, aangezien er veel bedrijfsnetwerken zijn opgezet. U kunt het beste een script maken dat whatismyip.org opvraagt, of proberen te vinden of er al een bestaat.
(Als tip: whatismyip.org heeft de voorkeur boven de meeste andere oplossingen, omdat het gewoon uw IP terugstuurt als platte tekst - geen overbodige tekst, links, afbeeldingen of andere rotzooi. Het zou veel gemakkelijker te gebruiken zijn in een aangepast script dan de meeste andere IP-detectiesites).
Dit werkt mooi, ik gebruik het meestal met psexec bij het inspecteren van clientcomputerverbindingen.
nslookup myip.opendns.com resolver1.opendns.com
Maak een bestand met de naam ip.vbs
en kopieer er het volgende in:
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
Uitvoeren met behulp van
C:\>cscript ip.vbs
Als nhinkle noot , kunt u het beste een site kiezen die alleen het IP retourneert en niet HTML + advertenties, enz. zoals:
(bron: voorheen http://externip.com/about ).
Met Powershell 3.0 (Windows 7 is standaard 2.0) kunt u Invoke-WebRequest
Voor IPv4:
$tmp =Invoke-WebRequest -URI http://myip.dnsomatic.com/
$tmp.Content
Voor IPv6:
$tmp =Invoke-WebRequest -URI http://myexternalip.com/raw
$tmp.Content
Dit geeft u een variabele om mee te werken als u er iets specifieks mee wilt doen. Ik gebruik dit eigenlijk om een script te bouwen om het dynamische IP van mijn router periodiek te uploaden, een andere machinetestcommunicatie te hebben met regelmatige tussenpozen, en dan DNS te updaten met het laatste IP als het veranderd is, zodat ik overal toegang kan krijgen tot mijn spullen door een naam te gebruiken in plaats van constant het IP te moeten achtervolgen.
En natuurlijk - als de sites veranderen of hun uitgangen veranderen, zul je dit dienovereenkomstig willen updaten. :)
Ik heb dit batch script een paar maanden geleden gemaakt om dat te doen:
@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
Het geeft je de mogelijkheid om het IP adres in het klembord te zetten en het stelt een omgevingsvariabele in - %PublicIP%
.
SIMPLER METHOD:
Nu doe ik gewoon dit:
curl icanhazip.com
of…
curl icanhazip.com | clip
…om het huidige publieke IP adres in het klembord te krijgen.
U heeft cURL nodig.
Zonder programma’s van derden is het moeilijk op Windows omdat Telnet niet standaard wordt geleverd, maar als het er wel is (XP) of aangezet (Windows Vista en hoger), typ dan gewoon:
telnet curlmyip.com 80
het scherm zal knipperen, en je krijgt gewoon een cursor… Volgende type:
GET
In hoofdletters… je ziet dan de headers, gevolgd door je ip (en sorry dat ik het vervaagde, alleen maar laten zien waar het zou zijn! ):
Andere antwoorden werken natuurlijk, maar, ik probeer me te houden aan de vraag over iets dat gebruikt kan worden op alle vensters, zonder programma’s van derden!
Voor Windows Vista en hoger kun je telnet eenvoudig (en veilig) installeren via Programs and features
, of gebruik maken van het volgende commando:
pkgmgr /iu:”TelnetClient”
Probeer dit eens: Heeft geen externe software nodig.
@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));
}
Ik wilde een oplossing hebben die werkt voor Windows zonder gereedschap van derden te installeren. Dus nam ik de powershell optie, die elk uur een script moet draaien.
Je maakt dit script aan met 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"
en slaat het op als getIP.ps1
ergens. Je kunt dit script direct in powershell oproepen of de taakplanner gebruiken zoals ik dat heb gedaan. Dit is de opdracht voor het uitvoeren van:
powershell -executionpolicy bypass -File C:\Users\Administrator\Desktop\getIP.ps1
In de taakplanner maak je een nieuwe taak aan. Bij Trigger gebruikt u de instelling dagelijks voor elke 1 dag en bij geavanceerde optie kiest u elk uur voor de duur van direct. Controleer ook Run taak zo snel mogelijk nadat een geplande start is gemist in de Settings. Onder Actie plakt u de bovenstaande uitvoeringscode.
De powershell-code kan geoptimaliseerd worden, omdat ik geen powershell-goeroe ben (mijn eerste keer ermee). Nu ben ik aan het testen of het script elk uur wordt opgeroepen.
ipchicken.com zal uw schijnbare IP-adres in tekstformaat teruggeven als u de terugkerende HTML die u uittrekt uit de externe IP van uw router kunt ontleden. U kunt ook een van die dynamische DNS-agenten installeren die uw schijnbare externe IP updaten naar een FQDN en dan gewoon nslookup doen op uw FQDN om uw huidige IP-nummer te zien. Vroeger waren er gratis, zoals DynDNS, maar voor de meeste is nu een betaald abonnement nodig.