Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 15271 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 ..
Ähnliche Inhalte
Microsoft Office
Adressen aus Hyperlinks auslesen (3)

Frage von kluthi69 zum Thema Microsoft Office ...

Entwicklung
gelöst Powershell IP und Hostname auslesen (3)

Frage von LyonAD zum Thema Entwicklung ...

Netzwerke
IP-Adresse Verbergen oder Verstecken (15)

Frage von Daoudi1973 zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst WAN öffentliche IP Adresse (6)

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

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...