IP-Adresse als variable einsetzen?

2 Antworten

Von Haus aus gibt es keine vordefinierten EnvironmentVariablen für Mac Ip usw.

Aber man kan die Parameter abfragen und Variablen zuweisen.

Die Externe IP, die jeder Internetserver zu sehen bekommt muss man Durch eine Serveranfrage ermitteln (vorzugsweise einen Server der nur die IP auf einer Leeren seite schreibt)

...das erledigt ein Javascript-programm:

new ActiveXObject('Microsoft.XMLHTTP')) { open('GET', 'http://api.ipify.org', false);send();WSH.Echo(responseText);}

Die Mac und diverse Andere Werte liefert

wmic nic

die configuration dazu

wmic nicconfig

Alles zusammen inclusiv des filterns der für unsere Variablen relevanten Daten erleidigt eine Batch.

@echo off


  rem javascript für IPLookupserver-verbindung
echo with (new ActiveXObject('Microsoft.XMLHTTP')) { open('GET', 'http://api.ipify.org', false);send();WSH.Echo(responseText);}>"%temp%\getExtIP.js"
  rem  ...ausführen (dauert etwas Zeit für die Antwort des servers)
for /f "tokens=*" %%a in ('cscript /nologo "%temp%\getExtIP.js" ') do (
    set "__ExtIP=%%~a"
)
echo Externe IP=%__ExtIP%


  rem  wmi-Abfrage Netzwerkadapter gefiltert...
for /f "skip=2 tokens=2-6 delims=," %%a in ('"wmic nic where NetEnabled=TRUE get AdapterType, MACAddress, Name, Speed, TimeOfLastReset /format:csv"') do (
    set "__AdapterType=%%~a"
    set "__MACAddress=%%~b"
    set "__AdapterName=%%~c"
    set "__AdapterSpeed=%%~d"
)
echo AdapterType=%__AdapterType%
echo MACAddress=%__MACAddress%
echo AdapterName=%__AdapterName%
echo AdapterSpeed=%__AdapterSpeed%


  rem wmi-abfrage  Netzwerkonfikuration gefiltert
for /f "usebackq skip=2 tokens=2-5 delims=,;{}" %%a in (`"wmic nicconfig where MACAddress='%__MACAddress%' get ipaddress /format:csv"`) do (
    set "__internIPv4=%%~a"
    set "__IPv6.vbl=%%~b"
    set "__IPv6.2=%%~c"
    set "__IPv6.temp=%%~d"
)
echo  Interne IPv4   =%__internIPv4%
echo  Verbindungslokale IPv6-Adresse        =%__IPv6.vbl%
echo  2. IPv6        =%__IPv6.2%
echo  temporaere IPv6=%__IPv6.temp%
pause

wie Du aus den ungefilterten wmic-Aufrufen ersehen kannst, gibt es noch viel mehr als das was ich in Variablen gespeichert habe. Ich hatte nur keine Lust noch mehr Variablen anzulegen...

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
Erzesel  18.01.2020, 18:45

update...ups eine IPv6 vergessen...

::wie oben
for /f "usebackq skip=2 tokens=2-6 delims=,;{}" %%a in (`"wmic nicconfig where MACAddress='%__MACAddress%' get ipaddress /format:csv"`) do (
    set "__internIPv4=%%~a"
    set "__IPv6.vbl=%%~b"
    set "__IPv6.2=%%~c"
    set "__IPv6.1=%%~d"
    set "__IPv6.temp=%%~e"
)
echo  Interne IPv4   =%__internIPv4%
echo  Verbindungslokale IPv6-Adresse        =%__IPv6.vbl%
echo  1. IPv6        =%__IPv6.1%
echo  2. IPv6        =%__IPv6.2%
echo  temporaere IPv6=%__IPv6.temp%

::dito
0

Die IP/MAC Adresse wird nicht als Umgebungsvariable ausgegeben.