Dienstbier 10 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 Hi! In einem Startscript müssen mehrere hosts in DNS aufgelöst werden und eine route hinzugefügt werden. Wie bekomme ich die Ausgabe von nslookup hostname derart verarbeitet, dass für jede zurückgegebene IP-Adresse eine Route gesetzt werden kann? Oder gibt es dazu eine bessere Lösung? Dank vorab dIbI PS: Hab leider zu wenig Erfahrung mit cmd-scripten :-( Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 Sollte das Routen hinzufügen nicht ein Router erledigen? Wieso soll das so gemacht werden? Zitieren Link zu diesem Kommentar
Dienstbier 10 Geschrieben 24. Juni 2009 Autor Melden Teilen Geschrieben 24. Juni 2009 Weil der Client eine VPN eines Drittanbieters herstellt. Darüber geht dann der Internettraffic. Das soll aber für ein paar Domains nicht sein (zB PayPal* sperrt sonst unheimlich gerne Konten *grrr*), da sonst andere VPN-Verbindungen ebenfalls über den Weg wandern, was die Latenz weiter erhöht. Da nun die betroffenen Domains scheinbar häufig die IPs ändern, soll das Script das dynamisch machen. *) laut Aussage Kundendienst lässt sich dieser "Schutz" nicht deaktivieren Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 Wie wärs, wenn der Internettraffic übers Internetz geht und nur VPN Traffic übers VPN? So würde ich das machen. Zitieren Link zu diesem Kommentar
Dienstbier 10 Geschrieben 24. Juni 2009 Autor Melden Teilen Geschrieben 24. Juni 2009 Ja, das ist mir ja alles klar, wäre das ein VPN VPN Aber das ist ein Internet-VPN (sprich, die VPN ist genau für den Internettraffic da). Ich brauche halt obiges Script um explizit Traffic NICHT über das Internet-VPN zu routen. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 Hallo, hier ein Beispiel für eien anderen Fall: for /f %%j in ('\\1Server\1getsid\psgetsid') do set sid=%%j In der For-Schleife mit Textiteration wird ein Befehl (hier psgetsid) ausgeführt, dessen Ausgabe landet in %%j, wird mit set nach sid geschrieben. Die Schleife arbeitet alle Zeilen einer Ausgabe ab, so das bei einem mehrzeigen Ergebnis nach Schleifenende nur das letzte Ergebnis verbleibt. U.U. ist kann es also nötig sein, die Schleife bedingt vorzeitig zu beenden. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 Ein weiters Beispiel: set store=%1 for /f "Tokens=10" %%i in ('ipconfig /all ^|find "Physikalische"') do set mac=%%i set mac=%mac:-=% set mac=%mac: =% echo %mac% set computername=%computername: =% for /f "tokens=1-2" %%i in (\\1Server\getMAC\%store%) do if %%i%%j equ %computername%%mac% exit echo %computername% %mac% >> \\1Server\getMAC\%store% rem if %computername% equ HL300-03 pause rem pause Mit dem Befehl find kann man gezielt nach einem Schüsselwort in einer Zeile suchen, mit tokens gezielt einen Block auswählen oder mehrere. Die Ausgabe erfolgt nur für die Zeile mit dem Schlüsselwort, man braucht keinen Abbruch konstruieren. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 24. Juni 2009 Melden Teilen Geschrieben 24. Juni 2009 Hier weiter Beispiele: set store=%1 for /f "tokens=*" %%i in ('systeminfo ^|find "Hostname:"') do set Host=%%i & goto :Host :Host echo %Host% set Host=%Host: =% rem set Host=%Host:Hostname:=% echo %Host% for /f "tokens=*" %%i in ('systeminfo ^|find "Systemmodell:"') do set Modell=%%i & goto :Modell :Modell echo %Modell% set Modell=%Modell: =% set Modell=%Modell:Systemm=M% echo %Modell% for /f "tokens=*" %%i in ('systeminfo ^|find "Gesamter physikalischer Speicher:"') do set RAM=%%i & goto :RAM :RAM set RAM=%RAM:Gesamter physikalischer Speicher=RAM% set RAM=%RAM: =% echo %RAM% for /f "tokens=1-3" %%i in (\\1Server\InvestigateRAM\%store%) do if %%i%%j%%k equ Hostname:%Computername%%Modell%%RAM% exit echo %Host% %Modell% %RAM% >> \\1Server\InvestigateRAM\%store% Zitieren Link zu diesem Kommentar
Dienstbier 10 Geschrieben 25. Juni 2009 Autor Melden Teilen Geschrieben 25. Juni 2009 Hoi! Danke für die Inputs! Habe mit einer Kombination aus dig (gooooooooogle sei dank) und der for-find-Kombi eine funktionierende Lösung gestrickt. Für alle, die's haben wollen: AddRoute.cmd @echo off if "%1"=="" goto error echo Setting route for %1 echo. for /f "tokens=1-5" %%i in ('"host %1 dd-wrt | find /i "has address""') do "AutoRouteIP.cmd" %%l >nul echo. goto end :error echo !!!No domain name given!!! :end addrouteip.cmd @echo off echo Adding route to %1 route add %1 mask 255.255.255.255 10.205.5.1 metric 1 if 8 Evtl sind individuelle Anpassungen nötig. Grüße EDIT sagt: Ja, es reicht auch einfach Token=4 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.