Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

per Batch Gateway auslesen und als Proxy eintragen

Frage Entwicklung Batch & Shell

Mitglied: Corain

Corain (Level 1) - Jetzt verbinden

04.03.2008, aktualisiert 05.03.2008, 12402 Aufrufe, 12 Kommentare

Hallo,

als Erstes sollte ich evtl. erwähnen, dass ich so gut wie keine Ahnung von Batch habe ... nur so viel vorweg

Mein Problem ist folgendes:
Ich bräuchte eine Batch-Datei, welche mir den aktuellen Standardgateway ausliest (ich dachte da evtl. an ipconfig
) und diesen dann im IE und im Firefox als Proxy (am besten gleich mit Port 8080) einträgt. Sehr hilfreich wäre hier vll auch eine Fehlermeldung, falls keiner eingetragen sein sollte und/oder eine varibale Verzögerung.
Ich wäre auch sehr dankbar, wenn mir das Script dann auch noch jemand etwas erklären könnte, damit ich es noch weiter anpassen kann, da ich diesen Proxy außerdem im McAfee VirusScan Enterprise 8.5i eintragen muss. Ich dachte mir, dass es vll die eleganteste Lösung wäre, die Variablen dann direkt in die Registry zu schreiben ... aber wie gesagt, ich hab ja eigentlich keine Ahnung und es ist nur eine Vermutung

Ich wäre sehr dankbar, falls mir hier jemand weiterhelfen könnte.
Mit freundlichen Grüßen Corain
Mitglied: stbewo
04.03.2008 um 13:40 Uhr
Hi corain,

versuche es einmal damit.

@echo off
setlocal enabledelayedexpansion
for /F "tokens=1,2 skip=1 delims=:" %%a in ('IPCONFIG.EXE') do (
set Gateway=%%a
if "!Gateway:~8,15!"=="Default Gateway" (
for /F "tokens=1 delims= " %%i in ("%%b") do (
echo "%%i"
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyServer" /t REG_SZ /d %%i:8080 /f
)
)
)
pause

Gruß
Stefan
Bitte warten ..
Mitglied: Corain
04.03.2008 um 14:15 Uhr
kk ... probiert habe ich es, aber es funktioniert nicht.
Also so wie ich schon in anderen Threads gelesen habe, muss wohl noch dieser ProxyEnable auf 1 gesetzt werden, aber das scheint nicht das Problem zu sein, da er den Wert, welcher in der Batch angegen ist nicht in der Reg setzt.

Ich danke Dir trotzdem vielmals für Deine Mühe. Ich dachte eher daran, den Standardgateway mit dem Befehl ipconfig>>ipconfig.txt in eine Textdatei zu schreiben und dann mit FINDSTR dies irgendwie auszulesen und dann einzutragen, aber ich komme halt nicht so ganz mit den Variablen und der for-Anweisung zurecht.
Sollte es natürlich trotzdem mit Deinem Weg möglich sein, wäre ich natürlich sehr dankbar dafür.

Zum Thema Verzögerung:
Ich meinte damit so etwas wie eine Zeit bevor er startet, aber ich denke das geht mit dem Taskplaner besser ^^

Danke trotzdem schon mal für Deine Hilfe.
Gruß Corain
Bitte warten ..
Mitglied: stbewo
04.03.2008 um 14:28 Uhr
Hi,

ich mache ja mit IPCONFIG nichts anderes, wie auszulesen. Die Sprachversion ist natürlich auch noch entscheidend. Falls Du eine Deutsche Version hast ist natürlich "Default Gateway" zu ersetzen. Mit Echo "%%i" sollte eigentlich eine Anzeige (IP-Adresse) bei Dir erfolgen.

Gruß
Stefan
Bitte warten ..
Mitglied: Biber
05.03.2008 um 13:36 Uhr
Moin Corain,

im deutschen Windows bzw. Fensters heißt der "Default Gateway" nicht etwa "Vorgabetorweg", sondern "Standardgateway".

Die FOR/F-Anweisung zum Rausflöhen der IP-Adresse des Gateways wäre entsprechend z.B.:
for /F "tokens=2 delims=:" %i in ('IPCONFIG ^| findstr /i "Standardgateway"') do @echo %i
nur zum Test am CMD-Prompt.

Grüße
Biber
Bitte warten ..
Mitglied: wuggale
21.10.2009 um 07:40 Uhr
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
Bitte warten ..
Mitglied: Biber
22.10.2009 um 07:16 Uhr
Moin wuggale,

willkommen im Forum.

versuch es so:
01.
@echo off & setlocal 
02.
 
03.
for /F "tokens=2 delims=:" %%i in ('IPCONFIG ^| findstr /i "gateway"') do set "DefaultGateway=%%i" 
04.
 
05.
REM wenn die IPConfig-Ausgabe zerlegt wird, 
06.
REM können allerdings auch zwei Zeilen mit "Standardgateway" gefunden werden. 
07.
REM Zum Beispiel bei einem Loopback-Adapter. Dieses Gateway ist dann LEER. 
08.
REM Da nach "delims=:" zerhackt wird und der Text "....gateway: .xxx.yyy.zzz.nnn" lautet, 
09.
REM ist ein führendes Leerzeichen vor der  IP! beim Vergleich zu berücksichtigen. 
10.
 
11.
IF "%DefaultGateway%" == " 1.1.1.2" GOTO w 
12.
IF "%DefaultGateway%" == " 1.1.2.2" GOTO y 
13.
Echo Keines der erwarteten Gateways isses, sondern %Defaultgateway%! 
14.
Goto :eof 
15.
 
16.
:W 
17.
echo der 1er Bereich !! 
18.
pause 
19.
 
20.
:Y 
21.
echo der 2er Bereich !! 
22.
pause
Grüße
Biber
Bitte warten ..
Mitglied: wuggale
22.10.2009 um 12:19 Uhr
Hallo Biber,

vielen Dank für die Lösung, klappt wunderbar, sowohl unter dem deutschem-, als auch dem englischen BS!!
War schon am Verzweifeln, allerdings hätte ich an das Leerzeichen vor der IP nie gedacht.

Nochmals Danke,

Gruß.. Wuggale
Bitte warten ..
Mitglied: wuggale
27.10.2009 um 11:12 Uhr
Hallo Biber,

ich hab noch einen speziellen Sonderfall zu diesem Thema, nähmlich wenn sich ein Home-Office User über VPN einlogged:
In diesem Fall ist keine Gatewayadresse bekannt - die müsste ermittelt werden und der Wert in die Abfrage eingefügt werden.
Daran haperts leider ;-(
Mit der Sprungmarke, z.B. "Z" springe ich in die Sektion, wo der WINS ermittelt wird und dadurch der User immer mit dem richtigen Standort
verbunden ist. (er ist ja auch unterwegs)

Die Anweisung - IF "%DefaultGateway%" == " %%a.%%b.%%c.d%%" GOTO Z - funktioniert nicht, weil sich an dieser Stelle offensichtlich keine werte übergeben lassen.

Wäre dankbar für einen Tipp,

Gruß Wuggale
Bitte warten ..
Mitglied: Biber
27.10.2009 um 11:30 Uhr
Moin wuggale,

den Sonderfall bekommen wir sicherlich auch noch gebacken, aber...

Mir fehlt im Moment etwas der Überblick, was wann passieren soll.... bzw. was sind die Voraussetzungen, von denen du weitere Programmlogik ableiten willst?

Einfacher gefragt: Die "Normalfälle" scheinen wir ja abhandelt zu haben - die sind dann offensichtlich immer über Standort/gateway X,Y oder Z erkennbar.

Willst du jetzt
  • eine Prüfung/Abfrage "isses ein User via VPN?" vorher machen (wenn ja, woran erkennst du einen VPN-User)?
  • oder nur machen, wenn die übliche IP-Config-Prüfung fehlschlägt (also weder Gateway X, Y noch Z via IPConfig gefunden wird)?
  • oder soll der VPN-User einen ganz anderen Batch bekommen?

Sorry, aber ich habe jetzt wirklich nicht ganz verstanden, was in dem Ablauf die Henne und was das Ei sein soll.

Grüße
Biber
Bitte warten ..
Mitglied: wuggale
27.10.2009 um 11:58 Uhr
Hi Biber,

ja, ist ein bisschen schwierig zu formulieren

die Normalfälle sind abgearbeitet - und die Liste passt.
es soll nur zum Schluss der (VPN)-Fall behandelt werden, wenn kein Gateway der Liste zutrift, dass über eine andere FOR-Schleife versucht wird, das Gateway zu ermitteln um
in die passende Sprungmarke reinzukommen. Ab da klappt es jetzt schon.

Mit der IF-Abfrage wird halt ein Wert erwartet, den ich nicht weiß (jeder hat seinen Router anders eingestellt) um damit halt eine Aktion auszuführen. Aber vielleicht brauchts gar kein
kompliziertes Konstrukt, da es egal ist welche IP da ankommt.

Gruß Wuggale
Bitte warten ..
Mitglied: Biber
27.10.2009 um 12:25 Uhr
Moin wuggale,

wenn ich dich richtig verstanden habe, dann wäre doch die nächstliegende Möglichkeit:
Dort, wo oben in der Skizze steht "Echo Keines der erwarteten Gateway isses" noch eine Zeile drunterzusetzen, die den Benutzer mit "Set /P" fragt, ob er in das (Abteilungs-?) Netz X, Y oder Z will bzw gehört.

Ich meine, wenn der User es schon mit seinem Usernamen, Passwort und Rechten soweit geschafft hat, dass er deinen Batch aufgerufen hat, dann kann er doch jetzt einfach gefragt werden, was er nun will.

Oder habe ich das Problem falsch verstanden?

Grüße
Biber
Bitte warten ..
Mitglied: wuggale
27.10.2009 um 13:25 Uhr
Hi Biber,

hast recht, am Ende der Liste füge ich noch eine Abfrage nach dem Wins an in der Form:

for /F "tokens=6 delims=:" %%i in ('IPCONFIG ^| findstr /i "WINS"') do set "IP=%%i"
IF "%IP%" == " 172.16.57.1" GOTO W
da eh schon alle Möglichkeiten durch sind, bleibt das ja nur noch übrig. Manchmal hat man einfach ein Brett vorm Kopf.

Auf jeden Fall vielen Dank für den Hinweis - dann kann's ja weitergehen

Gruß Wuggale..
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Linux Netzwerk
gelöst Squid3 Proxy via Namen statt Ip im Browser eintragen (3)

Frage von M.Marz zum Thema Linux Netzwerk ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
Per Batch aktuell angemeldete User auslesen (1)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...