IP-Adresse auromatisch auslesen und als Systemvariable eintragen
Hallo,
ich suche einen Weg wie ich die IP-Adresse automatisch auslesen kann (Batch) und die dann automatisch als Systemvariable (%IP%) nutzen kann
Die IP-Adresse ist eine variable Adresse!
Vielen Dank im voraus!
ich suche einen Weg wie ich die IP-Adresse automatisch auslesen kann (Batch) und die dann automatisch als Systemvariable (%IP%) nutzen kann
Die IP-Adresse ist eine variable Adresse!
Vielen Dank im voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 07.12.2010 um 21:42:54 Uhr
Beitrag verschoben von "Windows-weiss-nich-genau" nach "Batches from Hell",
auf "Hinreichend beantwortet" gesetzt und geschlossen.
auf "Hinreichend beantwortet" gesetzt und geschlossen.
Content-ID: 11573
Url: https://administrator.de/contentid/11573
Ausgedruckt am: 23.11.2024 um 09:11 Uhr
12 Kommentare
Neuester Kommentar
Moin cascadac,
sollte mit Bordmitteln machbar sein.
In dem Output von Ipconfig, den ich ja bis auf die Zeile "IP-Adresse" wegwerfe in obigen Beispiel, steht in der zweiten informationshaltigen Zeile das, was Du mit LAN1, LAN2, ISDN beschreibst (z.B "Ethernetadapter LAN:" oder ähnliches).
Also kann man/frau entsprechend dieser Zeile im Batch verzweigen.
Sammel doch mal die drei unterschiedlichen Ipconfig-Outputs zusammen, dann trümmern wir das eben hier im Forum zusammen.
Frank / der Biber aus Bremen
sollte mit Bordmitteln machbar sein.
In dem Output von Ipconfig, den ich ja bis auf die Zeile "IP-Adresse" wegwerfe in obigen Beispiel, steht in der zweiten informationshaltigen Zeile das, was Du mit LAN1, LAN2, ISDN beschreibst (z.B "Ethernetadapter LAN:" oder ähnliches).
Also kann man/frau entsprechend dieser Zeile im Batch verzweigen.
Sammel doch mal die drei unterschiedlichen Ipconfig-Outputs zusammen, dann trümmern wir das eben hier im Forum zusammen.
Frank / der Biber aus Bremen
Hallo!
Ich habe genau das gleiche Problem.
Hier mein Output von ipconfig:
Ethernetadapter VMware Network Adapter VMnet8:
Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 192.168.157.1
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :
Ethernetadapter VMware Network Adapter VMnet1:
Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 192.168.111.1
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :
Ethernetadapter LAN-Verbindung:
Verbindungsspezifisches DNS-Suffix: xxxx
IP-Adresse. . . . . . . . . . . . : 10.4.36.13
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 10.4.36.254
Ethernetadapter MyTap:
Medienstatus. . . . . . . . . . . : Es besteht keine Verbindung
PPP-Adapter VPN xxxx:
Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 10.81.113.2
Subnetzmaske. . . . . . . . . . . : 255.255.255.255
Standardgateway . . . . . . . . . :
Vielen Dank für die Hilfe
Ich habe genau das gleiche Problem.
Sammel doch mal die drei unterschiedlichen
Ipconfig-Outputs zusammen, dann
trümmern wir das eben hier im Forum
zusammen.
Ipconfig-Outputs zusammen, dann
trümmern wir das eben hier im Forum
zusammen.
Hier mein Output von ipconfig:
Ethernetadapter VMware Network Adapter VMnet8:
Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 192.168.157.1
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :
Ethernetadapter VMware Network Adapter VMnet1:
Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 192.168.111.1
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :
Ethernetadapter LAN-Verbindung:
Verbindungsspezifisches DNS-Suffix: xxxx
IP-Adresse. . . . . . . . . . . . : 10.4.36.13
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 10.4.36.254
Ethernetadapter MyTap:
Medienstatus. . . . . . . . . . . : Es besteht keine Verbindung
PPP-Adapter VPN xxxx:
Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 10.81.113.2
Subnetzmaske. . . . . . . . . . . : 255.255.255.255
Standardgateway . . . . . . . . . :
Vielen Dank für die Hilfe
Moin stupsnose,
was genau ist die Frage bzw Anforderung?
Wenn du nur mehrere Variablen %IP1%, %IP2%, ... etc setzen willst, reicht ein Ein-Zeilen Batch:
::--- SetIP-Oneliner.bat
(set /a cnt=1) & For /F "tokens=14" %%a in ('ipconfig^|find "IP-Ad"') do (set IP%cnt%=%%a) & (set /a cnt=%cnt%+1)
::--- SetIP-Oneliner.bat
Bisschen les- und pflegbarer:
::--- SetIPs.bat
@echo off
ipconfig|find "IP-Ad"' >%temp%\allips.txt
ipconfig|find /i "adapter" >%temp%\adapter.txt
set /a cnt =1
For /F %%a in ('%temp%\allips.txt') do (set IP%cnt%=%%a) & (set /a cnt=%cnt%+1)
:: Falls Du die Adapter auch entsprechend in %IPAdapter1%, %IPAdapter2% .. etc haben willst:
set /a cnt =1
For /F %%a in ('%temp%\adapter.txt') do (set IPAdapter%cnt%=%%a) & (set /a cnt=%cnt%+1)
:: zum Anzeigen
set IP
::--- Ende SetIPs.bat---
Output eines "Set IP" vom Dos-Prompt aus sollte sinngemäß sein:
IP1= 192.168.157.1
IP2=192.168.111.1
IP3= 10.4.36.13
..
IPAdapter1=Ethernetadapter VMware Network Adapter VMnet8:
IPAdapter2=Ethernetadapter VMware Network Adapter VMnet1:
IPAdapter3=Ethernetadapter LAN-Verbindung:
...
Gibt aber bestimmt auch aufwändigere Lösungen, aber als kurze Skizze sollte es reichen
Hope That Helps
Frank /der Biber aus Bremen
[edit]
...uups... grade gemerkt..
die %IPs% 1....n korrespondieren NICHT zwingend mit den %IPAdaptern% 1...n, da ich nicht prüfe, welche davon "aktiv" sind.
D.h. dein Adapter mit " ...keine Verbindung.." bringt die Sache durcheinander.
Aber die IP-Variablen passen schon.
Und die wolltest Du ja.
Frank
was genau ist die Frage bzw Anforderung?
Wenn du nur mehrere Variablen %IP1%, %IP2%, ... etc setzen willst, reicht ein Ein-Zeilen Batch:
::--- SetIP-Oneliner.bat
(set /a cnt=1) & For /F "tokens=14" %%a in ('ipconfig^|find "IP-Ad"') do (set IP%cnt%=%%a) & (set /a cnt=%cnt%+1)
::--- SetIP-Oneliner.bat
Bisschen les- und pflegbarer:
::--- SetIPs.bat
@echo off
ipconfig|find "IP-Ad"' >%temp%\allips.txt
ipconfig|find /i "adapter" >%temp%\adapter.txt
set /a cnt =1
For /F %%a in ('%temp%\allips.txt') do (set IP%cnt%=%%a) & (set /a cnt=%cnt%+1)
:: Falls Du die Adapter auch entsprechend in %IPAdapter1%, %IPAdapter2% .. etc haben willst:
set /a cnt =1
For /F %%a in ('%temp%\adapter.txt') do (set IPAdapter%cnt%=%%a) & (set /a cnt=%cnt%+1)
:: zum Anzeigen
set IP
::--- Ende SetIPs.bat---
Output eines "Set IP" vom Dos-Prompt aus sollte sinngemäß sein:
IP1= 192.168.157.1
IP2=192.168.111.1
IP3= 10.4.36.13
..
IPAdapter1=Ethernetadapter VMware Network Adapter VMnet8:
IPAdapter2=Ethernetadapter VMware Network Adapter VMnet1:
IPAdapter3=Ethernetadapter LAN-Verbindung:
...
Gibt aber bestimmt auch aufwändigere Lösungen, aber als kurze Skizze sollte es reichen
Hope That Helps
Frank /der Biber aus Bremen
[edit]
...uups... grade gemerkt..
die %IPs% 1....n korrespondieren NICHT zwingend mit den %IPAdaptern% 1...n, da ich nicht prüfe, welche davon "aktiv" sind.
D.h. dein Adapter mit " ...keine Verbindung.." bringt die Sache durcheinander.
Aber die IP-Variablen passen schon.
Und die wolltest Du ja.
Frank
Moin, Lord Calf,
das sollte das kleinste Problem sein...
Wenn Du Dich für eine der vielen IP-Ermittlungsvarianten über "IPConfig" oder "route print" entschieden hat, sollte der Minibatch z.B. so aussehen:
Biber
das sollte das kleinste Problem sein...
Wenn Du Dich für eine der vielen IP-Ermittlungsvarianten über "IPConfig" oder "route print" entschieden hat, sollte der Minibatch z.B. so aussehen:
:: ----- GoToMyIP.bat
@echo off
For /F "tokens=14" %%a in ('ipconfig^|find "IP-Ad"') do (set IP=%%a)
:: Falls du nur einen Adapter hast, passt das...sonst s.o. ...
:: oder ermitteln über den Output von "route print"... , dann hast Du auf jeden Fall die aktive IP
Start Http://%IP%:4242
:: ---------end of GoToMyIP.bat
Biber
Moin garfield,
kannst Du natürlich. Das einfachste ist es, diesen Teilstring aus einer ermittelten IP zu lösen - Du weißt ja, dass der "Trenner" ein Punkt ist und das Du den vierten Token willst.
Also Ausgangssituation:IP steht in einer Variablen (Demo am CMD-Prompt):
set "myIP=123.456.130.199"
for /F "Tokens=4 delims=." %i in ("%MyIP%") do set "MyIP_Token4=%i"
set myip
(Output)myIP=123.456.130.199
(Output)MyIP_Token4=199
..oder bei Dir an entsprechender Stelle:
for /F "Tokens=4 delims=." %i in ("%MyIP%") do set "MyIP_CompiName=wg_%i"
HTH Biber
kannst Du natürlich. Das einfachste ist es, diesen Teilstring aus einer ermittelten IP zu lösen - Du weißt ja, dass der "Trenner" ein Punkt ist und das Du den vierten Token willst.
Also Ausgangssituation:IP steht in einer Variablen (Demo am CMD-Prompt):
set "myIP=123.456.130.199"
for /F "Tokens=4 delims=." %i in ("%MyIP%") do set "MyIP_Token4=%i"
set myip
(Output)myIP=123.456.130.199
(Output)MyIP_Token4=199
..oder bei Dir an entsprechender Stelle:
for /F "Tokens=4 delims=." %i in ("%MyIP%") do set "MyIP_CompiName=wg_%i"
HTH Biber
hi,
ich bin auch auf der Suche wie ich die IP auswerten kann
komme aber mit einem stück script nicht wirklich weiter
kannst du mir vielleicht sagen wie du eine Variabele mit der IP befüllst ? am besten das drite Oktet nur
@echo OFF
for /F "tokens=13,*" %i in ('ipconfig^|find "IP-Ad"') do set IP=%j
ECHO %i
ECHO %j
PAUSE
ich bin auch auf der Suche wie ich die IP auswerten kann
komme aber mit einem stück script nicht wirklich weiter
kannst du mir vielleicht sagen wie du eine Variabele mit der IP befüllst ? am besten das drite Oktet nur
@echo OFF
for /F "tokens=13,*" %i in ('ipconfig^|find "IP-Ad"') do set IP=%j
ECHO %i
ECHO %j
PAUSE
Moin derauserbayerische,
dieser Beitrag riecht aber schon ein bisschen streng.... hast du mal auf das Datum des letzten Kommentars vor deinem geschaut?
Nur kurz: wenn du schon diese Ausgabezeile als Grundlage nehmen willst
...was nun wirklich ein absolut mistiger Input für das Rausflöhen des dritten Oktopus ist....
Das mach es doch mit Punkten als Delimiter statt Leerzeichen und genauem Abzählen.
-> wenn vorher 13 Token getrennt mit " " (Leerzeichen) vor der IP kamen... wie viele Punkte waren wohl dabei vor der IP?
Teste es doch am CMD-Prompt:
Falls du lieber umweltbewusst den alten (bzw. uralten) Codeschnipsel wiederverwenden willst, dann eben zwei FOR/F-Anweisungen hintereinandergeschaltet.
Aber egal, diesen Beitrag schliesse ich jetzt, wenn noch Fragen bleiben, dann bitte in einem frischen Beitrag.
Grüße
Biber
[edit] Gerade erst bemerkt. ... die Variante vorher im Beitrag war doch das Abzupfen des VIERTEN Oktetts bei Kollege Garfield.
Wieso war denn der Transfer von Garfilelds Oktett 4 auf dein Oktett 3 so schwierig??
[/edit]
dieser Beitrag riecht aber schon ein bisschen streng.... hast du mal auf das Datum des letzten Kommentars vor deinem geschaut?
Nur kurz: wenn du schon diese Ausgabezeile als Grundlage nehmen willst
ipconfig| find /"IP-Ad"
IP-Adresse. . . . . . . . . . . . : xxx.yyy.130.zzz
Das mach es doch mit Punkten als Delimiter statt Leerzeichen und genauem Abzählen.
-> wenn vorher 13 Token getrennt mit " " (Leerzeichen) vor der IP kamen... wie viele Punkte waren wohl dabei vor der IP?
Teste es doch am CMD-Prompt:
>for /F "delims=. tokens=15" %i in ('ipconfig^|find "IP-Ad"') do @echo Drittes 0ktett ist [%i]
Drittes 0ktett ist [130]
>for /F "tokens=13,*" %i in ('ipconfig^|find "IP-Ad"') do @for /f "delims=. tokens=3" %i in ("%j") do @echo Drittes 0ktett ist [%i]
Drittes 0ktett ist [130]
Aber egal, diesen Beitrag schliesse ich jetzt, wenn noch Fragen bleiben, dann bitte in einem frischen Beitrag.
Grüße
Biber
[edit] Gerade erst bemerkt. ... die Variante vorher im Beitrag war doch das Abzupfen des VIERTEN Oktetts bei Kollege Garfield.
Wieso war denn der Transfer von Garfilelds Oktett 4 auf dein Oktett 3 so schwierig??
[/edit]