Eine Route in Abhängigkeit von einer zugewiesenen IP-Adresse per Batch eintragen
Hallo,
kann mir jemand beim Programmieren einer Batch-Datei zur abfrage einer IP-Adresse und setzen einer Route helfen?
Konkret:
Habe ein VPN welches vom VPN-Server eine dynamische Adresse eines C-Netzes zugewisesen bekommt.
(10.221.38.x). (x kann variieren)
Nun will ich herausfinden, welche Adresse an der Stelle x steht und daraufhin eine Route setzen der Art:
route add 10.0.1.0 MASK 255.255.255.0 10.221.38.x
Habe zwar einiges gefunden, bin aber nicht so fit in Batch-Programmierung, dies umzusetzen.
Würde mich riesig über eine Lösung freuen.
Kann mir dann noch jemand sagen, ob ich diesen Batch nach erfolgreichem VPN-Aufbau automatisch starten kann?
(VPN wird unter WinXP zu einem VPN-Server aufgebaut)
MfG
Wilfried Wacker
kann mir jemand beim Programmieren einer Batch-Datei zur abfrage einer IP-Adresse und setzen einer Route helfen?
Konkret:
Habe ein VPN welches vom VPN-Server eine dynamische Adresse eines C-Netzes zugewisesen bekommt.
(10.221.38.x). (x kann variieren)
Nun will ich herausfinden, welche Adresse an der Stelle x steht und daraufhin eine Route setzen der Art:
route add 10.0.1.0 MASK 255.255.255.0 10.221.38.x
Habe zwar einiges gefunden, bin aber nicht so fit in Batch-Programmierung, dies umzusetzen.
Würde mich riesig über eine Lösung freuen.
Kann mir dann noch jemand sagen, ob ich diesen Batch nach erfolgreichem VPN-Aufbau automatisch starten kann?
(VPN wird unter WinXP zu einem VPN-Server aufgebaut)
MfG
Wilfried Wacker
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 41310
Url: https://administrator.de/forum/eine-route-in-abhaengigkeit-von-einer-zugewiesenen-ip-adresse-per-batch-eintragen-41310.html
Ausgedruckt am: 20.05.2025 um 07:05 Uhr
5 Kommentare
Neuester Kommentar
Moin wwacker,
eine Möglichkeit zum Abfragen der (eigenen) IP-Adresse mit Bordmitteln ist das Zerlegen der "ipconfig"-Ausgabe in einer FOR/F ..IN..DO-Anweisung.
Dazu wird von dieser Ausgabe nur eine Zeile benötigt (die, die den Text "Ip-Adresse. . . . .... : 10.221.38.x") enthält.
Und diese Zeile wiederum wird in Tokens, in "Satzteile" bei einem vorgegebenen Trennzeichen zerlegt.
Wenn Trennzeichen gleich ":" wäre, dann:
... würde die Variable %myIp% auf " 10.221.38.xxx" setzen.
Diesen %myIP%-Wert könntest Du im Batch noch weiter zerlegen:
[Würde ergeben: "myIPLastOctet=134" oder ähnliches.]
Somit hättest Du als Varianten für Deinen SetMyRoute.bat:
-oder, falls das Aufdröseln der IP in Octets keinen weiteren sittlichen Nährwert hat:
Gruß
Biber
eine Möglichkeit zum Abfragen der (eigenen) IP-Adresse mit Bordmitteln ist das Zerlegen der "ipconfig"-Ausgabe in einer FOR/F ..IN..DO-Anweisung.
Dazu wird von dieser Ausgabe nur eine Zeile benötigt (die, die den Text "Ip-Adresse. . . . .... : 10.221.38.x") enthält.
Und diese Zeile wiederum wird in Tokens, in "Satzteile" bei einem vorgegebenen Trennzeichen zerlegt.
Wenn Trennzeichen gleich ":" wäre, dann:
:: ------ snipp GetMyIp.bat
@for /f "delims=: tokens=2" %%i in ('ipconfig^|find "IP-Ad"') do @set myIp=%%i
... würde die Variable %myIp% auf " 10.221.38.xxx" setzen.
Diesen %myIP%-Wert könntest Du im Batch noch weiter zerlegen:
@for /f "delims=. tokens=4" %%i in ("%myIp%") do @set "myIPLastOctet=%%i"
[Würde ergeben: "myIPLastOctet=134" oder ähnliches.]
Somit hättest Du als Varianten für Deinen SetMyRoute.bat:
:: ------ snipp SetMyRouteA.bat
@for /f "delims=: tokens=2" %%i in ('ipconfig^|find "IP-Ad"') do @set myIp=%%i
@for /f "delims=. tokens=4" %%i in ("%myIp%") do @set "myIPLastOctet=%%i"
@route add 10.0.1.0 MASK 255.255.255.0 10.221.38.%myIPLastOctet%
-oder, falls das Aufdröseln der IP in Octets keinen weiteren sittlichen Nährwert hat:
:: ------ snipp SetMyRouteB.bat
@for /f "delims=: tokens=2" %%i in ('ipconfig^|find "IP-Ad"') do @route add 10.0.1.0 MASK 255.255.255.0 %%i
Gruß
Biber
Moin wwacker,
wie geschrieben - der erste Schritt wäre ja, aus der "ipconfig"-Ausgabe die eine relevante Zeile herauszufieseln.
Das kannst Du ja auch mit zwei FIND-Anweisungen machen, wenn Du "IP-Ad" und "10.221.38" suchst:
[ oder, wenn Du nur das letzte Oktett herausholen willst, dann weiter wie oben mit einer zweiten FOR /F-Anweisung.]
Gruß Biber
wie geschrieben - der erste Schritt wäre ja, aus der "ipconfig"-Ausgabe die eine relevante Zeile herauszufieseln.
Das kannst Du ja auch mit zwei FIND-Anweisungen machen, wenn Du "IP-Ad" und "10.221.38" suchst:
:: ------ snipp SetMyRouteC.bat
@for /f "delims=: tokens=2" %%i in ('ipconfig^|find "IP-Ad" ^|find "10.221.38"') do @(
route add 10.0.1.0 MASK 255.255.255.0 %%i
)
Gruß Biber