
52188
22.01.2008, aktualisiert am 18.10.2012
Mit Batch Gateway auslesen
Per Batchdatei das Gateway auslesen und im InternetExplorer öffnen
Hallo
Ich soll ein Skript schreiben, welches den lokalen Proxy ausschaltet, den InternetExplorer öffnet und dann dort die IP des Routers (Gateway des PCs) einfügt. Da ich bisher nur mit Batch programmiert habe, wollte ich das auch in ner Batch-Datei lösen. Den Proxy ausschalten war kein Problem, einfach über Registry. Nur wie ich jetzt das Gateway des Rechners auslesen soll, ist mir schleierhaft
Hallo
Ich soll ein Skript schreiben, welches den lokalen Proxy ausschaltet, den InternetExplorer öffnet und dann dort die IP des Routers (Gateway des PCs) einfügt. Da ich bisher nur mit Batch programmiert habe, wollte ich das auch in ner Batch-Datei lösen. Den Proxy ausschalten war kein Problem, einfach über Registry. Nur wie ich jetzt das Gateway des Rechners auslesen soll, ist mir schleierhaft
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78784
Url: https://administrator.de/forum/mit-batch-gateway-auslesen-78784.html
Ausgedruckt am: 07.04.2025 um 16:04 Uhr
8 Kommentare
Neuester Kommentar
Moin wurzel87,
dann musst den danis Ansatz nur geringfügig erweitern.
Die 4 Adapter stehen ja in der gleichen Reihenfolge in der Ausgabe von IPConfig wie deren Standardgateways.
Wenn Du also ermittelst (oder "weißt"), dass es um den 3. Adapter geht:
a) alle vorhandenen Adapter in der Reihenfolge ihres Erscheinens in IPConfig:
b) entsprechend sind die Gateways in derselben Reihenfolge.
Z.b. der dritte Gateway (hier nur am CMD-Prompt simuliert)
Durch das angehängte "^|findstr "3:" " wird die Zeile "3" in der Liste aller Zeilen mit dem Suchbegriff "Gateway" rausgefiltert. Also der dritte Gateway.
Im Batch würdest Du also vorher die gesuchte (in Deinem Beispiel dritte) Lanverbindung in eine Variable "LfdNr" schreiben und entsprechend den Gateway filtern
Ungetestete Batch-Skizze:
Grüße
Biber
dann musst den danis Ansatz nur geringfügig erweitern.
Die 4 Adapter stehen ja in der gleichen Reihenfolge in der Ausgabe von IPConfig wie deren Standardgateways.
Wenn Du also ermittelst (oder "weißt"), dass es um den 3. Adapter geht:
a) alle vorhandenen Adapter in der Reihenfolge ihres Erscheinens in IPConfig:
ipconfig|findstr /i "Adapter"|findstr /n $
--oder, bei bekannten Namen --
ipconfig|findstr /i "W-Lan HyperLan LAN-Verbindung P-LAN-Verbindung"|findstr /n $
Z.b. der dritte Gateway (hier nur am CMD-Prompt simuliert)
for /f "delims=: tokens=3" %i in ('ipconfig^|findstr /i "Gateway"^|findstr /n $^|findstr "3:" ') do @Echo %i
Durch das angehängte "^|findstr "3:" " wird die Zeile "3" in der Liste aller Zeilen mit dem Suchbegriff "Gateway" rausgefiltert. Also der dritte Gateway.
Im Batch würdest Du also vorher die gesuchte (in Deinem Beispiel dritte) Lanverbindung in eine Variable "LfdNr" schreiben und entsprechend den Gateway filtern
Ungetestete Batch-Skizze:
...
for /F "delims=:" %%i in ('ipconfig^|findstr /i "W-Lan HyperLan LAN-Verbindung P-LAN-Verbindung"^|findstr /n $') do set LfdNr=%%i
for /f "delims=: tokens=3" %%i in ('ipconfig^|findstr /i "Gateway"^|findstr /n $^|findstr "%lfdnr%:" ') do Set TheGateWay=%%i
Grüße
Biber
Bei der letzten Lösung steige ich noch net so ganz durch
Liegt daran, dass ich zwar mittlerweile der CMD.exe erklären kann, was sie machen soll, mir aber die sprachlichen Fähigkeiten fehlen, dieses allgemein verständlich auszudrücken.Bitte lies mein Geschreibsel zweimal und versuch dann bitte an dem Punkt nachzuhaken, wo es für Dich unverständlich wird. Werde gerne versuchen, Dich dort abzuholen.
Grüße
Biber
Hier mal mein Vorschlag. es wird einfach der Gateway genummen der 4 Zeilen unter "LAN-Verbindung" steht.
miniversum
@echo off
set "gatewayip="
FOR /F "delims=][" %%i in ('ipconfig^|find /n "LAN-Verbindung"') do set /a skipline=%%i+4
FOR /F "skip=%skipline% tokens=2 delims=:" %%i in ('ipconfig') do if not defined gatewayip Set gatewayip=%%i
)
"C:\Programme\Internet Explorer\iexplore.exe" %gatewayip%
miniversum
helo
kannst ja mal so probieren ...
ipconfig | findstr "Standardgateway" > sgw.txt
for /F "delims=" %%p in (sgw.txt) do @set VARGW=%%p
set SGW=%VARGW:~44,56%
RunDll32.exe url.dll,FileProtocolHandler HTTP://%SGW%
musst halt ein bischen gamen mit dem code dan kommt es gut ;)
ich mag nicht mehr darum mus du selber noch ein bischen studieren ....
lowbyte
kannst ja mal so probieren ...
ipconfig | findstr "Standardgateway" > sgw.txt
for /F "delims=" %%p in (sgw.txt) do @set VARGW=%%p
set SGW=%VARGW:~44,56%
RunDll32.exe url.dll,FileProtocolHandler HTTP://%SGW%
musst halt ein bischen gamen mit dem code dan kommt es gut ;)
ich mag nicht mehr darum mus du selber noch ein bischen studieren ....
lowbyte
ich habe folgendes Problem mit dieser Batch:
@echo off & setlocal
for /F "tokens=2 delims=:" %%i in ('IPCONFIG ^| findstr /i "gateway"') do set %%i="%Default Gateway%"
IF "%Default Gateway%" == "1.1.1.2" GOTO w
IF "%Default Gateway%" == "1.1.2.2" GOTO y
:W
echo der 1er Bereich !!
pause
:Y
echo der 2er Bereich !!
pause
Wie kann man den gewonnenen Wert auswerten, damit die IF-Abfrage greift?:
Danke und Gruss
wuggale
[Edit Biber]
wuggales Frage wurde in einem Parallelthread inhaltsgleich noch einmal gestellt und dort beantwortet (per Batch Gateway auslesen und als Proxy eintragen). [/Edit]
@echo off & setlocal
for /F "tokens=2 delims=:" %%i in ('IPCONFIG ^| findstr /i "gateway"') do set %%i="%Default Gateway%"
IF "%Default Gateway%" == "1.1.1.2" GOTO w
IF "%Default Gateway%" == "1.1.2.2" GOTO y
:W
echo der 1er Bereich !!
pause
:Y
echo der 2er Bereich !!
pause
Wie kann man den gewonnenen Wert auswerten, damit die IF-Abfrage greift?:
Danke und Gruss
wuggale
[Edit Biber]
wuggales Frage wurde in einem Parallelthread inhaltsgleich noch einmal gestellt und dort beantwortet (per Batch Gateway auslesen und als Proxy eintragen). [/Edit]