Ip Pingen Zeitüberschreitung?
Ich und mein Freund wollten letztens einfach Mal unsere IP Adressen rausfinden also die ip4 oder ipv6 Adressen doch als wir versuchten mit cmd diese ips zu Pingen kam nach kurzer zeit "Zeitüberschreitung" aber wie können wir das Problem lösen?
3 Antworten
Per Console die Externe IP automatisiert zu ermitteln ist nicht ganz einfach.
Zuerst benötigt man einen Server der die IP des Aufrufers ermittelt.
Den Rückgabewert aus einer Webseite wie: https://www.wieistmeineip.de/ ...auszulesen ist möglich aber umständlich.
Besser sind da Addressen wie http://api.ipify.org oder http://ipinfo.io/json
Diese geben einfach nackte Infos im Textformat zurück.
Ich verwende im folgenden Demos "ipfy.org" , da wirklich nur die Ip zürckgegebn wird.
Ansonsten Braucht man nur ein Schnittstelle, welche in der Lage ist Systemnahe Befehle auszuführen.
In der ersten Variante mache ich einfach per XmlHttpReqest in Javascript eine Anfrage an besagte Seite und sollte den Inhalt der Seite zurückbekommen...
XmlHttpReqest.cmd
@echo off
echo with (new ActiveXObject('Microsoft.XMLHTTP')) { open('GET', 'http://api.ipify.org', false);send();WSH.Echo(responseText);} >"%temp%\extIP.js"
for /f "tokens=*" %%a in ('cscript /nologo "%temp%\extIP.js"') do (
set "myExternalIP.JS=%%a"
)
echo Deine externe IP ist %myExternalIP.JS%
rem ping Deine eigene Externe IP
ping %myExternalIP.js%
pause
.Täterätääää....
Wir leben im Zeitalter von Win 10 und damit sollte Powershell auch kein Nogo sein...
...Und Powershell hat starke Netzwerk cmdlets....
Da sich Windows mit Powershell-Scriptdateien (aus gutem Grund) zickig hat.
Packen wir den Aufruf eines solchen Cmdlets in einen Einzeiler und übergeben die Daten an die Batch...
@echo off
rem Externe IP per Poweshell cmdlet Invoke-RestMethod über Requestserver ermitteln
for /f "tokens=*" %%a in ('powershell -c "&{Invoke-RestMethod http://api.ipify.org}"') do (
set "myExternalIP=%%a"
)
echo Deine externe IP ist %myExternalIP%
pause
Hier noch eine Kleine Zauberei, wie man ein ganzes Powershellscript in einer Batchdatei unterbringt.
@echo off
rem Powershellteil der Batch ausführen
rem ...extrem Tricky Ruft nicht deine Powershelldatei auf,
rem sondern liest den inhalt der Datei (in diesem Fall diese Batchdatei) in einen String und führt diesen aus.
rem Da dies einer eingabe von Hand gleichkommt,
rem sollte es nie Mecker bezüglich mangelnder Berechtigungen geben ;p
rem und bevor die Profis wieder Fragen... Die Batch endet vor dem Powershellscript
rem ...und das Powershellscript sieht die Batch nur als mehrzeiligen Kommentar ....
powershell -noprofile iex "(${%~f0}|out-string)"
pause
exit /b
:: end batch / begin powershell #>
cls
# externe IP von Requestserver abfragen...
$externalIP=Invoke-RestMethod http://api.ipify.org
Write-Host http://api.ipify.org return as Youre external IP : -noNewLine
Write-Host $externalIP "`n" -f white -b darkblue
# externe IP von Requestserver abfragen...
$externalIP=Invoke-RestMethod http://ipinfo.io/json
Write-Host "http://ipinfo.io/json return as Youre external IP :" -noNewLine
Write-Host $externalIP.ip "`n" -f white -b darkblue
"...all returned Information of this Server:"
$externalIP
Write-Host "Ping "$externalIP.ip
# Ping eigene Externe Adresse
Ping $externalIP.ip
Viele Wege führen nach Rom.
Natürlich kannst Du ohne Portfreigaben im Router über die Externe IP keinen Rechner hinter dem Router anpingen. Weder die Eigenen noch die Deines Kumpels...
Was Da auf Dein Ping antwortet ist immer der Router!
Habe gerade gesehen das beim eunfügen des 3. Scripts die 1 . Zeile verloren ging.
Fix:
<# : batch portion
@echo off
rem Powershellteil der Batch ausführen
...
...
Habt ihr die interne oder externe IP genommen?
Sind eure PCs denn im selben Netzwerk?
Mein also extern :(Nein sind wir nicht also externe IP
Eigentlich die externe aber zur Sicherheit wie findet man die einfach von einen selber raus wir wollen ja nur unsere nicht andere rausfinden