helferlein
Goto Top

Dialup Verbindung IP Log

Servus,

Also es geht um eine Dialup Verbindung die per Script getrennt und wieder aufgebaut, dabei möchte ich das jedes mal die
externe Ip die sich unter "ipconfig" finden lässt in ein logfile geschrieben wird am besten mit Datum und Uhrzeit.
Leider habe ich keine Ahnung (wie ich den spezifischen Inhalt aus Ipconfig auslese und weiterverarbeite)
Vielen Dank für jede Hilfe.

Helferlein.

Content-Key: 71230

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

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

Member: Dani
Dani Oct 17, 2007, updated at Oct 18, 2012 at 16:32:35 (UTC)
Goto Top
Hallo Helferlein,
also als Grundstein würde ich mir mal diesen Beitrag von mir anschauen. Denn ich hatte vor geraumer Zeit auch das Problem.

Der Rest ist dann einfach nur das Logschreiben:
@echo off

....
echo %date%-%time%: Verbindung getrennt. >> "C:\dsl-%date%.log"  
rasdisl "DSL" /disconnect  
echo %date%-%time%: Verbindung aufgebaut. >> "C:\dsl-%date%.log"  
...[Hier die IP-Adresse auslesen]
echo %date%-%time%: WAN-IP ist: %wanip% >> "C:\dsl-%date%.log"  

Grüße
Dani
Member: Helferlein
Helferlein Oct 17, 2007 at 18:30:38 (UTC)
Goto Top
Okey habe mir das hier jetzt mal zum Beispiel genommen.

::-------- snipp GetDanisIP.bat ------
@echo off & setlocal
ipconfig >%temp%\DanisIp.txt

REM --  bzw. "Ethernetadapter LAN-Verbindung: steht  
REM - Die Zeilennummer wird in Blockstart gespeichert
for /f "delims=:" %%i in ('findstr /n "\<LAN" %temp%\DanisIp.txt') do set /a Blockstart=%%i  
echo %Blockstart%
pause

REM -Jeweils die Zeile ermitteln, in der "Ethernetadapter WLAN-Verbindung:"   
REM - Die Zeilennummer wird in Blockstart gespeichert
if not defined BlockStart for /f "delims=:" %%i in ('findstr /n "WLAN" %temp%\DanisIp.txt') do set /a Blockstart=%%i  
echo %Blockstart%
pause

REM Zeilen überspringen
set /a BlockStart+=3

REM Aus der entsprechenden Zeile die IP-Adresse auslesen bzw. splitten
for /f "tokens=14 delims=: " %%i in ('findstr /n "." %temp%\DanisIp.txt^|findstr "%blockstart%:"') do set "theIp=%%i"  
echo Ermittelte IP ist [%theIP%]
pause
del %temp%\DanisIp.txt
::-------- snapp GetDanisIP.bat ------


so sieht meine Ausgabe der Ipconfig aus:

Windows-IP-Konfiguration


Ethernetadapter LAN2:

        Medienstatus. . . . . . . . . . . : Es besteht keine Verbindung

Ethernetadapter Drahtlose Netzwerkverbindung 2:

        Verbindungsspezifisches DNS-Suffix:
        IP-Adresse. . . . . . . . . . . . : 192.168.178.24
        Subnetzmaske. . . . . . . . . . . : 255.255.255.0
        Standardgateway . . . . . . . . . : 192.168.178.1

Ist aber nicht der betroffene PC nur ein Test ich hatte jetzt das Gefühl tokens und Blockstart müsste ich entsprechend anpassen. Aber die Ausgabe der Batch ist jetzt nur "Ermittelte IP ist "
Ein kleiner Tipp wäre grossartig.
Member: Dani
Dani Oct 17, 2007 at 18:36:54 (UTC)
Goto Top
Aber logo...lese doch mal die REM Kommentare von Biber. Dann müsste dir auffallen, dass meine Netzwerkverbindungen anders heißen wie bei dir. Den if not defined - Block brauchst du nicht!


Grüße
Dani
Member: Helferlein
Helferlein Oct 17, 2007 at 18:40:19 (UTC)
Goto Top
Ich finde die Kommentare verständnismässig quasi unlesbar.

Aber ich werds mal versuchen
Member: Biber
Biber Oct 19, 2007 at 15:36:02 (UTC)
Goto Top
Moin Helferlein,

Ich finde die Kommentare verständnismässig quasi unlesbar.
Ja, geb ich Dir recht... die waren aber auch als Kommentare zu einem anderen Sachverhalt geschrieben worden.

Das Wesentliche der Mimik, ohne die komplizierten Schnörkel, die wie oben bei mehreren Verbindungen auftreten:
  • Deine Lan-Verbindung wird IMMER auftauchen als Einzige
  • Deine Lan-Verbindung wird IMMER als "Ethernetadapter Drahtlose Netzwerkverbindung 2" auftauchen
  • und IMMER 3 Zeilen tiefer steht die IP in der IPConfig-Ausgabe.

Dann reduziert sich das Gesocks auf:
::-------- snipp GetHelferleinsIP.bat ------
@echo off & setlocal
ipconfig >%temp%\DanisIp.txt
Set "such=Drahtlose"  
REM - Die Zeilennummer vom Suchstring "Drahtlose" wird in Blockstart gespeichert  
for /f "delims=:" %%i in ('findstr /n "%such%" %temp%\DanisIp.txt') do set /a Blockstart=%%i  
REM Zeilen überspringen
set /a BlockStart+=3

REM Aus der entsprechenden Zeile die IP-Adresse auslesen
for /f "tokens=14 delims=: " %%i in ('findstr /n "." %temp%\DanisIp.txt^|findstr "%blockstart%:"') do set "theIp=%%i"  
echo Ermittelte IP ist [%theIP%]
pause
del %temp%\DanisIp.txt
::-------- snapp GetHelferleinsIP.bat ------

Gruß
Biber