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

Printed on: April 20, 2024 at 03:04 o'clock

Member: Dani
Dani Jan 22, 2008 at 09:28:44 (UTC)
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 Jan 22, 2008 at 09:39:52 (UTC)
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
Member: Biber
Biber Jan 22, 2008 at 12:28:25 (UTC)
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 Jan 22, 2008 at 12:56:37 (UTC)
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
Member: Biber
Biber Jan 22, 2008 at 14:05:45 (UTC)
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
Member: miniversum
miniversum Jan 22, 2008 at 14:31:38 (UTC)
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
Member: lowbyte1
lowbyte1 Jan 24, 2008 at 04:14:03 (UTC)
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
Member: wuggale
wuggale Oct 21, 2009, updated at Oct 18, 2012 at 16:39:44 (UTC)
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]