Im letzten Beitrag habe ich beschrieben wie man eine IPv4-Adresse in einem Batch-Skript ausliest. Nun soll es darum gehen, wie man dies mit einer IPv6-Adresse macht.

Wer öfter mit Windows zu tun hat, kommt irgendwann mal an dem Punkt an dem man in einem Skript die IP-Adresse benötigt. Oftmals reicht hier das auslesen und verwenden der IPv4-Adresse aus. Was aber wenn man keine IPv4-Adresse hat, weil man sich in einem mobilen Netzwerk befindet, z.B. mit einem Mobile Hotspot? Hier wird immer nur eine IPv6-Adresse vergeben. Die v4-Adresse ist immer die des Zugangspunktes vom Provider, bringt uns also nicht weiter.

Wenn man nun zum Beispiel einen kleinen Server hat, oder ein System auf das man per Fernwartung zugreifen möchte, ist es günstig wenn man eine DynDNS-Domain hat. Die meisten aktuellen Router bieten zwar inzwischen meistens die Möglichkeit einen DynDNS-Dienst zu konfigurieren aber sobald das zu erreichende System über einen mobilen Hotspot mit dem Internet verbunden ist, gestaltet sich das Unterfangen auf Grund der fehlenden IPv4-Adresse komplizierter. Dafür gibt es allerdings dynv6.com. Dieser Dienst erlaubt es uns einen DynDNS-Eintrag per IPv6 zu erstellen.

Damit wir diesen Eintrag aktuell halten können, benötigen wir die IPv6-Adresse. Diese lesen wir mit dem hier beschriebenen Skript aus und speichern diese in eine Variable.

Der Code

Mit folgendem Code erhält man die IPv6 in eine Variable und gibt diese auf der Kommandozeile aus:

@echo off
for /f "skip=1 tokens=2 delims=[]" %%* in ('ping.exe -n 1 -6 %computername%') Do (
  set "ip=%%*"
)
set ipv6=%ip:~0,-2%

echo Die externe IPv6 lautet: %ipv6%

Das @echo off wird genutzt, damit nicht jeder Befehl auf die Kommandozeile ausgegeben wird. Anschließend definieren wir eine for-Schleife mit dem Parameter /f . Diese führen wir genau einmal aus und zwar auf das Ergebnis des ping-Kommandos. Genau genommen wird der eigene Rechner angepingt. mit dem Schalter -6 sagen wir, das wir eine IPv6 Verbindung nutzen wollen. Da wir genau ein Ergebnis bekommen, welches nicht weiter gefiltert werden muss, schreiben wir das Ergebnis im do-Part direkt in die Variable ip.

Anschließend entfernen wir noch die letzten 2 Zeichen. Dies hängt damit zusammen, das wir beim anpingen des eigenen Rechners erhalten wir die IPv6-Adresse inkl. ZoneID. Diese ID benötigen wir aber nicht, daher entfernen wir es. Achtung, je nach Anzahl der Netzwerkadapter, virtuell wie auch physisch kann die ID auch Zweistellig sein. Im Normalfall ist dies aber nicht so.

Die Variable kann nun weiter genutzt werden oder wie im Beispiel einfach für eine Ausgabe verwendet werden.

Das Ergebnis

Im Terminal sieht das ganze wie folgt aus:

IPv6-Adresse in der CMD

Die Verwendung

Um das ganze nach zu bauen, legt euch eine neue Datei mit dem Namen ipv6.bat an. Öffnet diese Datei mit einem Editor eurer Wahl. Beim ersten öffnen einer .bat-Datei fragt Windows womit diese geöffnet werden soll, wählt hier am besten den Editor.

Kopiert den Code von oben in die Datei und speichert diese.

Anschließend die Kommandozeile mit [Win+R] und tipt dort cmd ein.

Navigiert zum Speicherort eurer Datei und führt diese mit dem Befehl ipv6.bat (bzw. eurem gewählten Dateinamen) aus. Nun erhaltet Ihr eure öffentliche IP ausgegeben.

Ich hoffe das dieser erste kleine Artikel hilfreich ist. In absehbarer Zeit folgt noch einer zum auslesen der Iv6-Adresse und zur Verwendung des kostenlosen DynDNS-Dienstes dynv6.com. Dieser erlaubt es, dynamische IPv6 mit einer Adresse zu verknüpfen.

Solltet Ihr Fragen haben, hinterlasst einen Kommentar oder nutzt das Kontaktformular.