52188
Goto Top

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

Content-Key: 78784

Url: https://administrator.de/contentid/78784

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: Dani
Dani 22.01.2008 um 10:28:44 Uhr
Goto Top
Moin, Moin,
ich würde so pö a pö mal so den Batch aufziehen:
@echo off

for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /i "Standard"') do "C:\Programme\Internet Explorer\iexplore.exe %%a  

Grüße
Dani
Mitglied: 52188
52188 22.01.2008 um 10:39:52 Uhr
Goto Top
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /i "Standard"') do "C:\Programme\Internet Explorer\iexplore.exe" %%a  

Es hat ein " nach dem Pfad vom InternetExplorer gefehlt, aber vielen Dank für den Anfang, ejtzt hab ich aber d sProblem, dsas sich der InternetExplorer 4 mal öffnet, ich weiß ja warum er das tut, aber kA wie ich direkt in den 3. Eintrag von IP-Config gehe

Wie kann ich mich denn auf eine Verbindung festlegen? Hab 4 Netzwerkkarten, deswegen öffnet sich 4 mal der Internet Explorer... Soll sich bei mir auf "LAN-Verbindung" beziehen
Mitglied: Biber
Biber 22.01.2008 um 13:28:25 Uhr
Goto Top
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:
ipconfig|findstr /i "Adapter"|findstr /n $  
--oder, bei bekannten Namen --
ipconfig|findstr /i "W-Lan HyperLan LAN-Verbindung P-LAN-Verbindung"|findstr /n $  
b) entsprechend sind die Gateways in derselben Reihenfolge.
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
Mitglied: 52188
52188 22.01.2008 um 13:56:37 Uhr
Goto Top
Es geht halt nur in meinem Fall um den 3. Adapter. Das is so, um mal ein bisschen weiter aufzuklären:

Unser Kunde soll auf die Batchdatei klicken, und dann soll sich der InternetExplorer öffnen, wo dann die IP des Routers drinne steht, einfach um zu prüfen ob der Router erreichbar ist oder net. Im Normalfall hat der Kunden die Interface WLAN, VPN und LAN. VPN ist nur aktiviert, wenn die Software dazu gestartet ist. WLAN ist standardmäßig deaktiviert. Was ich jetzt möchte, ist dass die Batch sich "LAN-Verbindung" rauskrallt, das Gateway raussucht und dann den InternetExplorer öffnet, der als Ziel-Url die IP des Routers hat.

Bei der Lösung von dani wars ja so, dass die Batch zu jedem Interface ein InternetExplorer geöffnet hat.

Bei der letzten Lösung steige ich noch net so ganz durch
Mitglied: Biber
Biber 22.01.2008 um 15:05:45 Uhr
Goto Top
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
Mitglied: miniversum
miniversum 22.01.2008 um 15:31:38 Uhr
Goto Top
Hier mal mein Vorschlag. es wird einfach der Gateway genummen der 4 Zeilen unter "LAN-Verbindung" steht.
@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
Mitglied: lowbyte1
lowbyte1 24.01.2008 um 05:14:03 Uhr
Goto Top
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
Mitglied: wuggale
wuggale 21.10.2009, aktualisiert am 18.10.2012 um 18:39:44 Uhr
Goto Top
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]