Jump to content

IP-Adressen aus DNS in Variablen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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 :-(

Geschrieben

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

Geschrieben

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.

Geschrieben

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.

Geschrieben

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.

Geschrieben

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%

Geschrieben

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

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...