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

Batch - IP-Adresse auslesen

Frage Entwicklung Batch & Shell

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

12.03.2007, aktualisiert 21:03 Uhr, 14664 Aufrufe, 3 Kommentare

Guten Abend zusammen,

habe mal wieder ein kleines *gg* Problem.
Folgende Situation: Einige Rechner haben mehrere IP-Adressen. Zum Teil dadurch, dass es zur LAN-Karte noch eine WLAN-Karte gibt => beide sind online! Desweitern noch 1 bzw. 2 virtuelle von einigen Geräten.

Nun haben wir in einem bestimmtes Script, dass nur ein bestimmter IP-Bereich dieses Script ausführen darf.

Nun haben wir weiter festgestellt, dass immer die letzte aufgelistete IP genommen wird. Diese ist meistens aber eine Adresse von einem virtuellen Netzwerkadapter und somit wird das Script gestoppt.

Hier ein kl. Beispiel:
01.
Ethernetadapter WLAN-Verbindung: 
02.
        Verbindungsspezifisches DNS-Suffix: xxxxx.local 
03.
        IP-Adresse. . . . . . . . . . . . : 192.168.0.11 
04.
        Subnetzmaske. . . . . . . . . . . : 255.255.255.0 
05.
        Standardgateway . . . . . . . . . : 192.168.0.1 
06.
 
07.
Ethernetadapter LAN-Verbindung: 
08.
        Verbindungsspezifisches DNS-Suffix:xxxxx.local 
09.
        IP-Adresse. . . . . . . . . . . . : 192.168.0.10 
10.
        Subnetzmaske. . . . . . . . . . . : 255.255.255.0 
11.
        Standardgateway . . . . . . . . . : 192.168.0.1 
12.
 
13.
Ethernetadapter TEST-Verbindung: 
14.
        Verbindungsspezifisches DNS-Suffix: 
15.
        IP-Adresse (Autokonfig.). . . . . : 0.1.0.5 
16.
        Subnetzmaske. . . . . . . . . . . : 255.255.255.255 
17.
        Standardgateway . . . . . . . . . :
ES geht immer um die IP-Adresse der "LAN-Verbindung" bzw. um die "WLAN-Verbindung". Diese beiden Verbindungen heißen immer gleich. Also wenn LAN nicht verbunden ist, soll er die WLAN IP-Adresse auslesen.
Ich brauch legendlich eine der beiden IP-Adressen. Zuerst die von LAN ansonsten die von WLAN! Der Rest soll nicht beachtet werden.
Mit meinem Batchkenntnissen bzw. Fähigkeiten komm ich leider nicht weiter...


Grüße
Dani
Mitglied: Biber
12.03.2007 um 19:55 Uhr
Moin Dani,

ich würde (wahrrscheinlich) ungefähr diese Strategie wählen, wenn nur diese IpConfig/all-Ausgabe zur Verfügung steht.

01.
::-------- snipp GetDanisIP.bat ------ 
02.
@echo off & setlocal 
03.
IpConfig /all >%temp%\DanisIp.txt 
04.
REM -Jeweils die Zeile ermitteln, in der "Ethernetadapter WLAN-Verbindung:"  
05.
REM --  bzw. "Ethernetadapter LAN-Verbindung: steht 
06.
for /f "delims=:" %%i in ('findstr /n "\<LAN" %temp%\DanisIp.txt') do Set /a Blockstart=%%i 
07.
If not defined BlockStart for /f "delims=:" %%i in ('findstr /n "WLAN" %temp%\DanisIp.txt') do set /a Blockstart=%%i 
08.
Set /a BlockStart+=2 
09.
for /f "delims=: tokens=3" %%i in ('findstr /n "." %temp%\DanisIp.txt^|findstr "%blockstart%:"') do set "theIp=%%i" 
10.
echo Ermittelte IP ist [%theIP%] 
11.
pause 
12.
del %temp%\DanisIp.txt 
13.
::-------- snapp GetDanisIP.bat ------
[wie immer ungetestete Skizze]

Gruss
Biber
P.S. Nachtrag:
"... wenn nur diese IpConfig/all-Ausgabe zur Verfügung steht..." ....
...sollte heißen: ich würde es lieber mit etwas ermitteln, was gezielt die IP bezogen auf eine konkrete Verbindung abfragen kann (z.B. WMI).
Dieses "Finde den Beginn des Blocks, dann steht zwei Zeilen tiefer die IP-Adresse..." *hmmmmmmm*....ist nicht wirklich zeitlos elegant.
Bitte warten ..
Mitglied: Dani
12.03.2007 um 20:26 Uhr
G' Aben Biber,
wunderbar....2 Fehler waren noch drinne, aber ich habe grad noch so gefunden! *gg*

Hier die FInalversion:
01.
::-------- snipp GetDanisIP.bat ------ 
02.
@echo off & setlocal 
03.
ipconfig >%temp%\DanisIp.txt 
04.
 
05.
REM --  bzw. "Ethernetadapter LAN-Verbindung: steht 
06.
REM - Die Zeilennummer wird in Blockstart gespeichert 
07.
for /f "delims=:" %%i in ('findstr /n "\<LAN" %temp%\DanisIp.txt') do set /a Blockstart=%%i 
08.
echo %Blockstart% 
09.
pause 
10.
 
11.
REM -Jeweils die Zeile ermitteln, in der "Ethernetadapter WLAN-Verbindung:"  
12.
REM - Die Zeilennummer wird in Blockstart gespeichert 
13.
if not defined BlockStart for /f "delims=:" %%i in ('findstr /n "WLAN" %temp%\DanisIp.txt') do set /a Blockstart=%%i 
14.
echo %Blockstart% 
15.
pause 
16.
 
17.
REM Zeilen überspringen 
18.
set /a BlockStart+=3 
19.
 
20.
REM Aus der entsprechenden Zeile die IP-Adresse auslesen bzw. splitten 
21.
for /f "tokens=14 delims=: " %%i in ('findstr /n "." %temp%\DanisIp.txt^|findstr "%blockstart%:"') do set "theIp=%%i" 
22.
echo Ermittelte IP ist [%theIP%] 
23.
pause 
24.
del %temp%\DanisIp.txt 
25.
::-------- snapp GetDanisIP.bat ------
Und diese Funktioniert!!! *gg* Vielen Dank...

Achja Fehler:
for /f "delims= : tokens=3"
Statt der 3 muss dort die 14 stehen. Bei "delims" habe ich das Leezeichen noch hinzugefügt, da sonst bei der IP-Adresse noch ein Leerzeichen davor war.

Set /a BlockStart+=2
Mit der 3 geht es einfacher.....aus dem DNS-Suffix kann ich einfach nicht die IP auslesen! *gg*


Grüße
Dani
Bitte warten ..
Mitglied: Biber
12.03.2007 um 21:03 Uhr
Danke für die Rückmeldung, Dani,

ich hatte mich natürlich an Deiner geposteten Ausgabe orientiert.
Deshalb kam ich auf das "zwei Zeilen später" statt "drei Zeilen später".

Egal, hast es ja verstanden, was ich meinte...

Bei dem anderen Fehler kann ich erstmal aber kein Problem feststellen:
Bei der oben geposteten Vorgabe...
01.
>findstr /n "." f:\temp\DanisIp.txt 
02.
1:Ethernetadapter WLAN-Verbindung: 
03.
2:        Verbindungsspezifisches DNS-Suffix: xxxxx.local 
04.
3:        IP-Adresse. . . . . . . . . . . . : 192.168.0.11 
05.
4:        Subnetzmaske. . . . . . . . . . . : 255.255.255.0 
06.
5:        Standardgateway . . . . . . . . . : 192.168.0.1 
07.
7:Ethernetadapter LAN-Verbindung: 
08.
8:        Verbindungsspezifisches DNS-Suffix:xxxxx.local 
09.
9:        IP-Adresse. . . . . . . . . . . . : 192.168.0.10 
10.
10:        Subnetzmaske. . . . . . . . . . . : 255.255.255.0 
11.
11:        Standardgateway . . . . . . . . . : 192.168.0.1 
12.
13:Ethernetadapter TEST-Verbindung: 
13.
14:        Verbindungsspezifisches DNS-Suffix: 
14.
15:        IP-Adresse (Autokonfig.). . . . . : 0.1.0.5 
15.
16:        Subnetzmaske. . . . . . . . . . . : 255.255.255.255 
16.
17:        Standardgateway . . . . . . . . . : 
17.
 
18.
(=21:02:26  D:\temp=) 
19.
>for /f "delims=: tokens=3" %i in ('findstr /n "." f:\temp\DanisIp.txt^|findstr "3:"') do @echo %i 
20.
 192.168.0.11
.... kommt schon das erhoffte Ergebnis.
Aber was soll's, viele Wege führen nach Redmond.... Hauptsache, mindestens eine Lösung klappt.

Gruss
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(4)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 7
gelöst Bereits eingebundener Drucker - IP Adresse lokal auslesen (17)

Frage von harald.schmidt zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst TP-Link WA501G als Client einrichten - Keine IP Adresse wir bezogen (14)

Frage von bestelitt zum Thema LAN, WAN, Wireless ...

E-Mail
gelöst Falsche SMTP Server IP Adresse (6)

Frage von laster zum Thema E-Mail ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...