Top-Themen

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

IP-Adresse per Batch auslesen

Mitglied: format-c

format-c (Level 1) - Jetzt verbinden

21.03.2013, aktualisiert 22.03.2013, 22581 Aufrufe, 11 Kommentare, 5 Danke

Und ewig grüßt das Murmeltier...
Das alte Thema "Wie ermittle ich die IP-Adresse meines Rechners in einem Batchskript". Das Thema wurde hier schon mal behandelt und als "gelöst" gekennzeichnet. Allerdings bin ich mit der auf dem Befehl ipconfig beruhenden Lösung nicht so ganz zufrieden.

Denn ipconfig gibt immer Informationen über alle Netzwerkadapter aus. Hat man z.B. zusätzlich zum LAN-Adapter noch eine WLAN-Karte und/oder ein virtuelles Netzwerk (wie z.B. das Host-Only-Network von der Virtualbox) wird die Sache schnell unübersichtlich, mann muss zusätzliche Kontrollmechanismen (wie z.B. einen Zähler) einbauen usw. Sonst bekommt man immer die letztgenannte IP-Adresse, die nicht unbedingt die richtige sein muss. Und das Konzept mit dem Zähler ist auch noch davon abhängig, in welcher Reihenfolge die einzelnen Netzwerkadapter ausgegeben werden, was sich aber von Rechner zu Rechner unterscheiden kann.

Lange Rede, kurzer Sinn, here it is:

01.
FOR /F "tokens=3,5" %a in ('netsh interface ipv4 show route') do @IF '%a'=='0' FOR /F "tokens=2" %A in ('netsh interface ipv4 show addresses %b ^| find "IP-Ad"') do @echo IP: %A
Noch schneller geht es mit dieser Variante:
01.
FOR /F "tokens=5" %a in ('netsh interface ipv4 show route ^| find "0.0.0.0/0"') do @FOR /F "tokens=2" %A in ('netsh interface ipv4 show addresses %a ^| find "IP-Ad"') do @echo IP: %A
Ist zwar eine sehr lange, aber dennoch eine einzige Zeile. (Wer diese Zeile in einer Batchdatei verwenden möchte, sollte nicht vergessen alle Vokommen von %x zu %%x zu erweitern.)

Erklärung:
in der Ausgabe des Befehls netsh interface ipv4 show route steht an erster Stelle in der Spalte Idx der Index des richtigen Netzwerkadapters. Diesen greifen wir uns und bekommen dann mit netsh interface ipv4 show addresses <index> die IP-Konfi für den Netzwerkadapter mit der gegebenen Indexnummer. (Ohne die Angabe der Indexnummer ist die Ausgabe ähnlich wie bei ipconfig.) Jetzt also nur noch nach dem passenden String filtern und die echo-Ausgabe durch eine set-Anweisung geeignet ersetzen. Finito.

Ein alternativer Weg wäre es, die Indexnummer aus netsh interface ipv4 show interfaces herauszufiltern. Diese Methode hat sich allerdings als unzuverlässig entpuppt: ich habe Rechner gesehen, auf denen die Bezeichnung "LAN-Verbindung" dem bereits erwähnten virtuellen Netzwerk der Virtualbox gehörte, während die gesuchte Netzwerkkarte auf den Namen "Ethernet" gehört hat. Ist also wieder Rechner-abhängig. Da halte ich den Eintrag in der Routingtabelle, der die Metrik 0 hat, für zuverlässiger.



Noch einfacher geht es mit dem Tool "Swiss File Knife". Da bekommt man mit sfk.exe ip sofort das, wonach man sucht. Die Sache hat aber zwei kleine Haken: a) mehr als die IP-Adresse erfährt man dabei auch nicht (d.h. keine Subnetzmaske) und b) auch wenn das Tool Freeware ist, geht man dabei über Bordmittel hinaus (ist nur so eine Prinzip-Sache).


Wenn ihr bessere oder vergleichbare Lösungen habt, bitte teilt euer Wissen mit uns.


Schöne Grüße
Eugen
Mitglied: Endoro
21.03.2013 um 20:44 Uhr
Hallo Eugen,
das klappt leider bei mir nicht (XP):
01.
WARNUNG: Es konnten keine Hostinformation vom Computer: [ABCDEFGHIJK] ermittelt 
02.
werden. Einige Befehle sind eventuell nicht verfügbar. 
03.
Das angegebene Modul wurde nicht gefunden. 
04.
 
05.
Der folgende Befehl wurde nicht gefunden: interface ip show route.
bb
Bitte warten ..
Mitglied: format-c
22.03.2013 um 02:10 Uhr
Hast Recht. Sorry, ich habe nicht daran gedacht, das oben beschriebene auch auf einem XP-System zu testen. Die Net-Shell unter XP ist in der Tat weitaus weniger mächtig als die unter Win7 und dieses Skript funktioniert so ohne Weiteres nicht. Erstens, funktioniert ohne den "Routing- und RAS-Dienst" die Hälfte der Befehle schon mal gar nicht. Und dieser ist wiederum zunächst deaktiviert. Also müssen wir ein CMD-Fenster mit Admin-Rechnten anschmeißen und
01.
sc config remoteaccess start= auto 
02.
net start remoteaccess
ausführen. Zweitens, dann müssen wir feststellen, dass im Kontext netsh interface ip show nichts mit "route" zu finden ist. Es gäbe zwar die Möglichkeit netsh routing ip show rtmroutes, aber dort gibt es keine Angaben zum Index, und selbst wenn es welche gäbe — in der Netshell von XP nützt einem der Index des Netzwerkadapters bei der Suche nach der IP-Adresse nichts.
Nicht verzweifeln! Irgendwie klappt es doch noch. Ein möglicher Workaround wäre z.B. sowas:
01.
for /F "tokens=6*" %i in ('netsh routing ip show rtmroutes ^| find "0.0.0.0/0"') do @for /F "tokens=1" %a in ('netsh interface ip show ipaddress ^| find "%j"') do @echo IP: %a
Man kann statt nach "0.0.0.0/0" zu filtern auch "255.255.255.255/32" nehmen. (Auch für dieses Codefragment gilt selbiges wie oben.)

Leider funktionieren die Befehle netsh routing ip show rtmroutes und netsh interface ip show ipaddress trotz des gestarteten Dienstes für "Routing- und RAS" nur mit Admin-Rechten.


Grüße
Eugen
Bitte warten ..
Mitglied: format-c
22.03.2013, aktualisiert um 14:50 Uhr
Hier wird eine weitere Lösung beschrieben. Das Gute an der ist, dass sie gleich gut auf allen Windows Versionen funktioniert. Und wie der Autor des verlinkten Beitrags mag ich Einzeiler ebenfalls.

01.
for /f "tokens=2 delims=[]" %a in ('ping -n 1 -4 %computername% ^| find /I "%computername%"') do @echo IP: %a

Grüße
Bitte warten ..
Mitglied: Endoro
22.03.2013 um 15:06 Uhr
Hallo, das klappt super. Nur manchmal wird "127.0.0.1" ausgegeben, worum man sich noch kümmern muss.

Gruss!

bb
Bitte warten ..
Mitglied: ThePinky777
25.03.2013, aktualisiert 27.03.2013
Hier ein VBS Script zum auslesen aus der WMI:
01.
'############################################################# 
02.
' ************************************************** 
03.
' * IP-Adressen und MAC-Adressen auflisten 
04.
' ************************************************** 
05.
'On Error Resume Next 
06.
 
07.
Set wmi = GetObject("winmgmts:") 
08.
' alle Instanzen finden, bei denen IPEnabled auf true gesetzt ist 
09.
wql = "select * from win32_NetworkAdapterConfiguration where IPEnabled=true" 
10.
Set configs = wmi.ExecQuery(wql) 
11.
 
12.
For each config in configs 
13.
Set assoc = config.Associators_(,"Win32_NetworkAdapter",,,,,,,32) 
14.
	' die zugehörige Win32_NetworkAdapter-Klasse finden 
15.
	For each karte in assoc 
16.
		Set adapter = karte 
17.
		' gibt nur eine, also Schleife verlassen 
18.
		exit For 
19.
	Next	 
20.
		' Join macht aus einem Variablenfeld einen String 
21.
		if instr(adapter.name, "Nortel") = 0 then 
22.
		 	if config.DHCPEnabled = true then 
23.
		 		DHCP = "Ja" 
24.
		 	else 
25.
		 		DHCP = "Nein" 
26.
		 	end If 
27.
		 	 
28.
			WScript.Echo adapter.name  
29.
			WScript.Echo adapter.MACAddress  
30.
			WScript.Echo Join(config.IPAddress, ",")  
31.
			WScript.Echo config.DHCPServer  
32.
			WScript.Echo DHCP 
33.
			WScript.Echo config.DNSDomain 
34.
		end if 
35.
Next 
36.
 
37.
 
38.
'#############################################################
Einfach in ein Text file kopieren und ipauslesen.vbs nennen. dann im dos per kommando:
cscript c:\ipauslesen.vbs
starten.
[Edit Biber] Codeformatierung. [/Edit]
Bitte warten ..
Mitglied: format-c
26.03.2013 um 12:46 Uhr
Zitat von ThePinky777:
...
if instr(adapter.name, "Nortel") = 0 then
...

Hallo ThePinky777.
Verstehe ich es richtig, dass "Nortel" hier der Name des Herstellers des Netzwerkadapters ist? Falls ja, dann müsste man für jeden Rechner, auf dem dieses Skript ausgeführt wird, zuerst erfahren, wie die Netzwerkkarte heißt, wozu wiederum eine menschliche Interaktion erforderlich wäre. Gibt es da nicht irgendeinen Weg, das Skript vollautomatisch arbeiten zu lassen?


Grüße
format-c
Bitte warten ..
Mitglied: ThePinky777
27.03.2013, aktualisiert um 21:30 Uhr
Zitat von format-c:
> Zitat von ThePinky777:
> ...
> if instr(adapter.name, "Nortel") = 0 then
> ...

Hallo ThePinky777.
Verstehe ich es richtig, dass "Nortel" hier der Name des Herstellers des Netzwerkadapters ist? Falls ja, dann
müsste man für jeden Rechner, auf dem dieses Skript ausgeführt wird, zuerst erfahren, wie die Netzwerkkarte
heißt, wozu wiederum eine menschliche Interaktion erforderlich wäre. Gibt es da nicht irgendeinen Weg, das Skript
vollautomatisch arbeiten zu lassen?


Grüße
format-c

ne die Zeile sagt er soll "Nortel" Ausschließen.
Nortel ist ein anbieter von VPN verbindungen/treiber, sieht in der WMI aus wie ne netzwerkkarte ist aber nur eine Virtuelle, ergo uninteressant.
gibt vielleicht noch 1-2 weitere hersteller die man so ausschließen könnte wenns stört, z.B. Cisco AnyConnect oder so heißt einer. Wobei ich keine Ahnung hab wie dort dann die Netzwerkkarte heißt.

Aber du könntest das Script ja einfach mal starten dann siehst dus schon, das es geht
Das script lief ei 9000 Rechnern fehlerfrei, ergo denk ich wirds auch bei dir laufen

Aber ich gebs zu ist komisch gescriptet, ich häts auch anders gemacht kollegen halt

und wenn man die Daten speichern will in ne Datei hier ne Anleitung:
http://pc-know-how.g-websys.de/themen/004_vbs_script__inhalte_in_eine_d ...
Bitte warten ..
Mitglied: LinWinx86
04.05.2013 um 00:00 Uhr
Abend,

ca. tausendmal getestet mit Win XP, funktioniert ohne Probleme

IPCONFIG | FINDSTR "IP-Adresse" >ip.tmp
FOR /F "tokens=2,3,4 delims=:. " %%a IN (ip.tmp) DO SET SubNet=%%a.%%b.%%c
DEL ip.tmp
Bitte warten ..
Mitglied: ThePinky777
13.05.2013 um 12:59 Uhr
Zitat von LinWinx86:
Abend,

ca. tausendmal getestet mit Win XP, funktioniert ohne Probleme

> IPCONFIG | FINDSTR "IP-Adresse" >ip.tmp
> FOR /F "tokens=2,3,4 delims=:. " %%a IN (ip.tmp) DO SET SubNet=%%a.%%b.%%c
> DEL ip.tmp

jo funktioniert aber nur auf deutschem Betriebssystem, weil "IP-Adresse" als text gibts weder auf Englischem, Französischem, Spanischem und Schwedischen system, es reicht hierbei auch schon wenn ein anderer Language pack benutzt wird, das es nicht mehr geht.

daher kann man das script dann nur einsetzen wenn man das alles abfängt
wenn mans aus der WMI ausliest wie das VBS Script dann ist sprachversion wurst.
Bitte warten ..
Mitglied: format-c
13.05.2013 um 16:34 Uhr
Hätte LinWinx86 den ersten Beitrag dieses Threads aufmerksam gelesen, dann hätte sich sein Beitrag ganz erübrigt.


Grüße
format-c
Bitte warten ..
Mitglied: format-c
22.06.2013 um 14:32 Uhr
Hallo allerseits.

In meinem Beitrag über die Berechnung der Broadcast-Adresse habe ich eine andere Lösung präsentiert, die doch noch auf ipconfig basiert:

SETLOCAL EnableDelayedExpansion 
 
REM # IP-Adresse holen 
for /f "tokens=2 delims=[]" %%a in ('ping -n 1 -4 %COMPUTERNAME% ^| find /I "%COMPUTERNAME%"') do set ip_adresse=%%a 
 
for /f "tokens=2 delims=:" %%A in ('ipconfig ^| findstr "%ip_adresse% Subnet"') do ( 
	REM # IP-Adresse bereinigen (Leerzeichen entfernen) und in einer  
	REM # temporären Variable speichern 
	for /f %%a in ("%%A") do set gefunden=%%a 
	REM # Die Subnetzmaske soll nur dann ausgelesen werden, wenn sie 
	REM # unmittelbar auf die "richtige" IP-Adresse folgt, 
	REM # ansonsten wird sie verworfen. 
	IF '!gefunden!'=='%ip_adresse%' ( 
		set flag=1 
	) ELSE ( 
		IF '!flag!'=='1' ( 
			set subnetz_ip=!gefunden! 
			set flag= 
set gefunden=
Mit einem Flag funktioniert auch die Erkennung der Subnetzmaske zuverlässig.


Grüße
format-c
Bitte warten ..
Ähnliche Inhalte
Exchange Server

IP Adressen von einem Empfangsconnecor im Exchange auf den anderen Kopieren

Tipp von merkelExchange Server

IP Adressen von einem Exchange Connector zum anderen kopieren. Beispiel: Hat bei mir eben von Exchange 2013 zu Exchange ...

Internet

Verfassungsschutzchef will IP-Adressen von Abrufern von Enthauptungsvideos

Information von BassFishFoxInternet13 Kommentare

Es lief mal wieder Wuensch Dir was. Die Präsidenten der deutschen Geheimdienste haben in einer ersten öffentlichen Anhörung im ...

Windows 7

Win7 IP-Adresse lässt sich nicht aus der LAN-Karte entfernen

Erfahrungsbericht von SierjoergWindows 78 Kommentare

Hallo liebe Kolleginen und Kollegen, ich habe mich dazu entschlossen diese Anleitung zu schreiben, da ich gestern auf dieses ...

SAN, NAS, DAS

QNAP Installationsproblem wenn der Client mehre statische IP-Adressen hat

Erfahrungsbericht von StefanKittelSAN, NAS, DAS6 Kommentare

Hallo, ich schreibe das mal hier, vieleicht hilft es ja dem einen oder anderem. Ich habe gestern hier zwei ...

Neue Wissensbeiträge
Internet

Europa baut Zensurinfrastruktur auf: EU-Parlament stimmt für Upload-Filter, Leistungsschutzrecht und gegen KI-Forschung

Information von Frank vor 2 TagenInternet9 Kommentare

Eine sehr schlechte Entscheidungen für die Zukunft Europas ist gefallen: Der Rechtsausschuss im EU-Parlament stimmte heute morgen in einer ...

Windows 10

Mikrofon von Headset geht nach Update auf Windows 10 1803 nicht mehr

Tipp von Deepsys vor 4 TagenWindows 102 Kommentare

Ich verwende ein Plantronics Headset das per USB mit dem Windows 10 PC verbunden ist. Damit kann ich auch ...

Video & Streaming

Ruckelfreies Fernsehen auf Smartphone oder Tablet - in SD oder gar HD - Eine Alternative zum Fritz DVB-C Receiver

Anleitung von power-user vor 5 TagenVideo & Streaming9 Kommentare

Wer kennt das nicht: Man möchte gemütlich auf dem Balkon sitzen und vielleicht grillen und dabei das WM-Spiel gucken ...

Erkennung und -Abwehr
Trendmicro WFBS 10 ist in deutsch verfügbar!
Tipp von VGem-e vor 5 TagenErkennung und -Abwehr4 Kommentare

Servus Kollegen, downloadbar unter

Heiß diskutierte Inhalte
LAN, WAN, Wireless
WLAN-Übersicht wie FritzWLAN jedoch für PC gesucht
gelöst Frage von HenereLAN, WAN, Wireless16 Kommentare

Servus, ich suche für einen Windows PC eine Anwendung die so ähnlich wie die FritzWLAN App auf dem Smartphone ...

Netzwerke
Netzwerkkommunikation von Windows 10 aus Freigabe mit Windows XP funktioniert nicht
gelöst Frage von KLinnebankNetzwerke14 Kommentare

Hallo werte Gemeinde, ja, es ist Freitag. Aber das ist KEINE Freitagsfrage Ich habe ein für mich völlig wirres ...

Festplatten, SSD, Raid
Server Architektur mit RAID 5 - wozu interne Platten?
Frage von Pierre78Festplatten, SSD, Raid10 Kommentare

Hallo, ich beschäftige mich gerade mit RAID Systemen. Ich habe mir einen gebrauchten Dell PowerEdge R515 gekauft. Dieser hat ...

Samba
Netzlaufwerk über VPN hat Probleme
Frage von geocastSamba8 Kommentare

Hallo Zusammen Ich habe hier ein QNAP TS-269 Pro (aktuellste Firmware) NAS in einem entfernten Standort, der über VPN ...