holsthn
Goto Top

IP-Adressen von bestimmten VPNs auslesen

Hallo
Ich habe eine etwas umfangreichere Frage:
Ich muss für bestimmte Fälle Routen hinzufügen. Das mache ich mit folgender Batch-Datei

rasdial xxx user passwort
route add ???.???.???.??? MASK 255.255.255.255 10.1.185.229

anstelle der Fragezeichen benötige ich die IP-Adresse der VPN-Verbindung xxx
Die IP-Adresse dieser Verbindung steht leider nicht immer an der gleichen Stelle von Ipconfig, wenn Sie nicht aktiv ist sogar gar nicht drin.
Ich muss also eine zur VPN-Verbindung gehörende IP auslesen und diese an der Stelle der ? einsetzten.
Hat jemand eine Idee für das endgültige Script? Wäre sehr dankbarface-smile

Content-Key: 48832

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

Printed on: April 19, 2024 at 18:04 o'clock

Member: Dani
Dani Jan 15, 2007 at 17:06:30 (UTC)
Goto Top
Hi,
ich glaube, ich habe mal eine Möglichkeit im ADS gesehen. Und zwar gehe mal in Benutzerverwaltung => Benutzer markieren => Rechtsklick => Eigenschaften => Einwählen => Statische Routen verwenden =>Statische Routen.

Ob das geht, habe ich bisher noch nie ausprobiert. Aber warum musst du die Route am Client hinterlegen??


Gruß
Dani
Member: holsthn
holsthn Jan 15, 2007 at 17:09:48 (UTC)
Goto Top
vielen dank für die antwort!
das ist leider ein einzelplatzrechner und ich benötige eine batchdatei
viele grüße
Member: Biber
Biber Jan 16, 2007 at 09:39:23 (UTC)
Goto Top
Moin holsthn,

hier meine Skizze (für Beispiel-Verbindung "VPNHamburg"):
::-----snipp getVPNIP.Bat
@echo off & setlocal
ipconfig >%temp%\Ipconf.txt
For /f "delims=:" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "VPNHamburg"') do set /a line=%%i+3  
For /f "delims=: tokens=3" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "%line%:"') do @set IpHH=%%i  
@echo IP ist: [%IPHH%]
:: ------Snapp getVNP-IP.bat

HTH Biber
Member: holsthn
holsthn Jan 16, 2007 at 09:51:38 (UTC)
Goto Top
perfekt!
und wie kriege ich die ip jetzt in die route?
einfach am ende statt @echo IP ist: [%IPHH%]
do @ (
route add 10.0.1.0 MASK 255.255.255.0 [%IPHH%]
)?
also müsste folgender script funktionieren?

@echo off & setlocal
ipconfig >%temp%\Ipconf.txt
For /f "delims=:" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "VPNHamburg"') do set /a line=%%i+3
For /f "delims=: tokens=3" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "%line%:"') do @set IpHH=%%i
do @(
route add 10.0.1.0 MASK 255.255.255.0 %%i
)

vielen Dank!
Member: Biber
Biber Jan 16, 2007 at 10:18:12 (UTC)
Goto Top
Moin holsthn,

statt
do @(
route add 10.0.1.0 MASK 255.255.255.0 %%i
)

einfach
route add 10.0.1.0 MASK 255.255.255.0 %IPHH%

Und eigentlich müsste am Anfang noch eine Zeile rein zur Behandlung des Falls, dass der Suchstring/die gesuchte Verbindung "VPNHamburg" gar nicht in IPConfig enthalten ist. So in der Art:
IPConfig|findstr "VPNHamburg">nul || goto ErrorVPNHHNotFound  
....

:ErrorVPNHHNotFound
echo VPN-Verbindung Hamburg nicht gefunden... is' nix mit Route add..  
goto :eof
..

Gruß
Biber
Member: holsthn
holsthn Jan 16, 2007 at 10:31:26 (UTC)
Goto Top
super vielen dank!
ein ganz kleines problem noch - vor der ausgelesenen ip ist ein leerzeichen - wie kriege ich das weg?
danke und gruß
Member: Biber
Biber Jan 16, 2007 at 10:46:32 (UTC)
Goto Top
wie kriege ich das weg?
Wozu?

Set IPHH=%IPHH:~1%

...aber dem "route add" ist das so egal....

Grüße
Biber
P.S. Setzt Du bitte den Beitrag auf Erledigt? Rest mach ich dann... face-wink
Member: holsthn
holsthn Jan 16, 2007 at 11:02:57 (UTC)
Goto Top
stimmt ist egal - hab ich jetzt auch gemerkt - sorry
Ich kriege leider immer die Fehlermeldung
das ist das einzige was bis jetzt nicht funktioniert.
wenn ich folgenden Code ausführe
:ErrorVPNNotFound
echo VPN-Verbindung wurde nicht aufgebaut
goto :eof

bekomme ich egal ob die Verbindung aufgebaut ist oder nicht

to ErrorVPNNotFound

C:\Dokumente und Einstellungen\haho>echo VPN-Verbindung wurde nicht aufgebaut
VPN-Verbindung wurde nicht aufgebaut

C:\Dokumente und Einstellungen\haho>goto :eof

gruß
Member: holsthn
holsthn Jan 16, 2007 at 11:12:54 (UTC)
Goto Top
ich stelle leider gerade noch eine 2te sache fest:
wenn ich in der dosbox den dateinamen der bat-datei angebe und diese ausführe funktioniert es wunderbar, wenn ich aber direkt auf die batdatei klicke kriege ich folgende meldung

Verbindung mit "VPNHamburg" wurde hergestellt.
Der Befehl wurde erfolgreich ausgeführt.

Manipuliert die Netzwerkroutingtabellen.

ROUTE [-f] [-p] [Befehl [Ziel]
[MASK Netzmaske] [Gateway] [METRIC Anzahl] [IF Schnittstelle]

-f Löscht alle Gatewayeinträge in Routingtabellen.
Wird der Parameter mit einem der Befehle verwendet, werden
die Tabellen vor der Befehlsausführung gelöscht.
-p Wird der Parameter mit dem "ADD"-Befehl verwendet, wird
eine Route unabhängig von Neustarts des Systems verwendet.
Standardmäßig ist diese Funktion deaktiviert, wenn das
System neu gestartet wird. Dies wird ignoriert für alle
anderen Befehle, die beständige Routen beeinflussen.
Diese Funktion wird von Windows 95 nicht unterstützt.
Befehl Auswahlmöglichkeiten:
PRINT Druckt eine Route
ADD Fügt eine Route hinzu
DELETE Löscht eine Route
CHANGE Ändert eine bestehende Route
Ziel Gibt den Host an.
MASK Gibt an, dass der folgende Parameter ein Netzwerkwert ist.
Netzmaske Gibt einen Wert für eine Subnetzmaske für den Routeneintrag
an. Ohne Angabe wird die Standardeinstellung
255.255.255.255 verwendet.
Gateway Gibt ein Gateway an.
Schnittstelle Schnittstellennummer der angegebenen Route.
METRIC Gibt den Anzahl/Kosten-Wert für das Ziel an.

Alle symbolischen Namen, die für das Ziel verwendet werden, werden in
der Datei der Netzwerkdatenbank NETWORKS angezeigt. Symbolische Namen
für Gateway finden Sie in der Datei der Hostnamendatenbank HOSTS.

Bei den Befehlen PRINT und DELETE können Platzhalter für Ziel und
Gateway verwendet werden, (Platzhalter werden durch "*" angegeben),
oder Sie können auf die Angabe des Gatewayparameters verzichten.

Falls Ziel "*" or "?" enthält, wird es als Shellmuster bearbeitet und es
werden nur übereinstimmende Zielrouten gedruckt. Der Platzhalter "*" wird
mit jeder Zeichenkette überprüft, und "?" wird mit jedem Zeichen überprüft.
Beispiele: 157.*.1, 157.*, 127.*, *224*.
Diagnoseanmerkung:
Eine ungültige MASK erzeugt einen Fehler unter folgender Bedingung :
(DEST & MASK) != DEST.
Beispiel> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1
Die Route konnte nicht hinzugefügt werden: Der angegebene
Maskenparameter ist ungültig.
(Destination & Mask) != Destination.


Beispiele:

> route PRINT
> route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2
Ziel^ ^Maske ^Gateway Metric^ ^
Schnittstelle^
Sollte "IF" nicht angegeben sein, wird versucht die beste
Schnittstelle für das angegebene Gateway zu finden.
> route PRINT
> route PRINT 157* .... Zeigt passende Adressen mit 157* an.
> route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2

CHANGE wird nur zum Ändern des Gateways und/oder des Metrikwert
verwendet.
> route PRINT
> route DELETE 157.0.0.0
> route PRINT

aus irgendeinem grund fügt er die route also nicht hinzu
Member: Biber
Biber Jan 16, 2007 at 11:17:16 (UTC)
Goto Top
Moin holsthn,

ändere mal das "null" in "nul" und setze es in Klammern.
Sollte aber eigentlich funktionieren...


Bei mir Funktioniert jedenfalls am CMD-Prompt ein Test, allerdings genau wie ohne Klammern:

ErrorBla

Anders ausgedrückt... falls da ein Denkfehler drin ist, seh ich ihn auch grad nicht.

Gruß
Biber
Member: holsthn
holsthn Jan 16, 2007 at 11:55:04 (UTC)
Goto Top
ja wenn ichs direkt dahinterschreibe gehts auch bei mir danke

jetzt nur noch 2 kleine sachen einmal das unten(wenn ich die bat direkt aufrufe funktioniert route add nicht richtig) und 2tens habe ich die möglichkeit dass die dosbox offen bleibt wenn es zu einem fehler kommt oder das die batch eine windowsfehlermeldung ausgibt?

danke und gruß
Member: TaToosh
TaToosh Aug 12, 2010 at 13:23:44 (UTC)
Goto Top
bei mir erzeugt der Aufruf:
route add 192.168.100.0 MASK 255.255.255.0 %IPHH%

eine Endlosschleife - woran liegt das, bzw. wie kann ich die umgehen?
Member: Dani
Dani Aug 12, 2010 at 13:31:24 (UTC)
Goto Top
Hi,
schön das wir einen alten Thread wieder ausgegraben haben. Das sehen wir bei dem Alter des Beitrags nicht so gerne. Bitte schreibe für dein Problem einen Neuen - Danke!


Grüße,
Dani