Login | Registrieren       
Mit WMI IP Adresse abfragen
Möchten Sie die IP-Adresse des Netzwerkadapters oder eines lokalen Computers abfragen ist das mit WMI kein Problem. Sie könnten natürlich auch die MSWinSock.ocx-Komponente verwenden, da diese aber nicht auf jeden Computer installiert ist, empfiehlt es sich den Weg über WMI zu wählen.

Die IP-Daten finden sich in der Klasse Win32_NetworkAdapterConfiguration. Ein VBS-Script kann somit einen Query-Befehl zur Abfrage dieser Daten verwenden.

strQuery = "Select * from Win32_NetworkAdapterConfiguration
Where IPenabled=True"

Die Where-Bedingung im SQL-Query sorgt dafür, dass auch nur jene Adapter aufgelistet werden, die eine IP-Adressierung verwenden.

Nun muss das Script aber eine Verbindung zum WMI über die GetObject-Methode herstellen. Gleichzeitig wird über das betreffende Objekt die ExecQuery-Methode aufgerufen.

Set objWMI = GetObject("wingmts: impersonationLevel=impersonate} !" & Machine).ExecQuery (strQuery)


Der Aufruf dieser Methode liefert jetzt ein Auflistungsobjekt, welches die Daten aller Netzwerk Adapter enthält. Diese lassen sich einfach über eine For Each-Schleife auswerten. Anschließend kann man auf die Eigenschaften eines Elements der Auflistung zugreifen.

For Each objAdapter in objWMI
txt = txt & "Adapter: " & objAdapter.Index & vbCRLF
txt = txt &"Beschreibung: " & objAdapter.Caption & vbCRLF
txt = txt & "IP-Adresse: "
If Not IsNull(objAdapter.IPAdress) Then
For i = LBound(objAdapter.IPAdress) to
UBound(objAdapter.IPAdress)
txt = txt & objAdapter.IPAdress(i) & vbCRLF
Next
End If
Next

Die Eigenschaft "Index" des Objekt "objAdapter" liefert die Nummer des Adapters, die "Caption"-Eigenschaft enthält die NetBIOS-Beschreibung. Die IP-Adresse wird über die "IPAdress"-Eigenschaft abgefragt. Da diese aber ein Feld ist, muss man zuvor die vollständige IP-Adresse über eine For-Schleife auslesen.
Ähnliche Artikel
 Keine ähnlichen Artikel gefunden.