[WIN cmd] Wie kriegt man seine WAN-IP raus?

SoDaTierchen

Commodore
Registriert
Feb. 2011
Beiträge
4.472
Hallo Community,

ich versuche mich gerade an einem kleinen Script um einen Game-Server verteilt aus einer Dropbox auszuführen. Also viele Leute können den Starten, ohne das Writelocks die Dateien korrumpieren. Das klappt auch soweit.

Im folgenden möchte ich das Script aber vereinfachen, und dafür wäre es nötig, die eigene WAN-IP herauszubekommen. Idealerweise nur die IP, mit einem gewissen Kontext wäre aber auch noch okay.

Folgendes Setup ist stets gegeben: PC (Win7/8) - Router - WAN.

Gibt es eine Möglichkeit, über die CMD ohne externe Mittel (wget, curl) die eigene WAN-IP herauszubekommen?

​Danke für eure Hilfe
 
Da die WAN IP idr. nur im Gateway hinterlegt ist, kennt der Client diese nicht.
Wäre DynDNS eine Alternative?
 
Dein Rechner hat gar keine WAN-IP sondern nur der Router... ergo müsstest du sie von ihm irgendwie erfragen oder eben über zusätzliche Tools...
 
Hik,

hier sind einige Wege aufgeführt wie man sowas machen kann. Auch ohne curl oder wget.

Einfachste Möglichkeit:

Code:
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

Das als "script.vbs" speichern und dann aufrufen mit "C:\>cscript ip.vbs" in der Command oder einfach aurufen bzw. weiterverarbeiten, je nachdem was du vorhast.

VG,
Mad
 
Oder über Powershell ohne irgendwelche zusätzlichen Tools...

Code:
## Function to retrieve external IP address.
## the external address is retrieved from the
## title header of the webpage "www.myip.dk"

function Get-ExternalIP {
    $source = "http://www.myip.dk"
    $client = new-object System.Net.WebClient
    $webpage = $client.downloadString($source)
    $lines = $webpage.split("`n")
    foreach ($line in $lines) {
        if ($line.contains("</title>")) {
            $ip = $line.replace("    <title>Your IP address is: ", "").replace("</title>","")
        }
    }
    $obj = New-Object Object
    $obj | Add-Member Noteproperty externalIP -value $ip
    $obj
}
 
Die Lösung von MadMan1209 gefällt mir sehr gut. Vielen Dank !
 
Zurück
Oben