Klingt einfach, mit Batch die IP Adresse des Rechners auslesen und speichern. Hat mich erstaunlich lange aufgehalten eine Lösung zu finden.
Die meisten Tipps bei Google nutzen den Output von ipconfig, suchen nach einem „IP“ ähnlichen String, bearbeiten diesen und filtern die IP.
Beispiel:
:: FUNKTIONIERT NICHT!! BEI AKTUELLEREN SYSTEMEN,SIEHE UNTEN IPCONFIG |FIND "IP" > %temp%\TEMPIP.txt FOR /F "tokens=2 delims=:" %%a in (%temp%\TEMPIP.txt) do set IP=%%a del %temp%\TEMPIP.txt set IP=%IP:~1% echo %IP% >%temp%\ip.txt
Seit Windows Vista und IPv6 funktioniert das aber nicht mehr. Ein falscher String wird abgespeichert.
Den String aus der ipconfig zu fischen ist ziemlich ungelenk, eine aktuelle und bessere Lösung zu finden ist nicht so einfach.
Lösung:
for /f "skip=1 tokens=2 delims=[]" %%* in ('ping.exe -n 1 -4 %computername%') Do (set "IP=%%*")
Mit dieser Zeile wird die IPv4 Adresse des aktuellen primären Interfaces gespeichert. Mit dem Parameter
-6
statt
-4
wird die primäre IPv6 Adresse in der Variable abgelegt. Funktioniert auch in Win XP, Win 7 und Server 2008.
Ich liebe Einzeiler und finde diese Lösung damit umso charmanter.
Update:
Memo an mich, einzelne Bytes der IP extrahieren:
for /f "skip=1 tokens=2 delims=[]" %%* in ('ping.exe -n 1 -4 %computername%') Do (set "IP=%%*") echo %IP% :: 145.123.2.31 for /f "tokens=1,2,3,4 delims=." %%a in ("%IP%") do set IPb1=%%a&set IPb2=%%b&set IPb3=%%c&set IPb4=%%d echo %IPb4% :: 31
Alle Bytes der IP Adresse sind jetzt ansprechbar.
via
Danke! Hat mir gerade sehr geholfen.
Genau das habe ich gesucht. Danke!
Hi…
Wahnsinn – endlich einer der eine ordentlich Lösung anbietet…
Vielen vielen Dank 🙂
genial, hab die Zeile gerade in mein Script zum Auslesen der IP Adresse unserer USB-Dongleserver eingebaut, vielen Dank!
Super, genau das, was ich gesucht habe, nachdem ich selber daran gescheitert bin. Vor allem: Einfach, schnell, läuft mit unterschiedlichen Betriebssystemen in unterschiedlichen Sprachen – perfekt!