Netzwerkkarten auslesen

bomberman

Grünschnabel
Hey Leute,
ich bin gerade dabei mir einen IP-Switcher zu basteln. Für bestimmte Netzwerkkarten funktioniert er auch schon, nur möchte ich, das ich angebe welche Netzwerkkarte welche IP bekommen soll.
Kann ich irgendwie die Netzwerkkarten eines PCs auslesen?

Danke schonmal
 
moin andi, du alter ct'ler ;)

vielleicht kann man es mit WMI rauskriegen. Der u.g. Code liest alle MAC-Adressen aus.

Code:
Option Explicit

Private Sub Form_Load()
    Dim MACs() As String
    Dim i As Long
    
    MACs = MACAddressWMI
    For i = 0 To UBound(MACs)
        If Len(MACs(i)) > 0 Then List1.AddItem MACs(i)
    Next i
End Sub

Public Function MACAddressWMI() As String()
    Dim WMIobj As Object
    Dim MACobj As Object
    Dim s() As String
    On Error Goto ErrOut
    
    ReDim s(0)
    Set WMIobj = GetObject("winmgmts:").ExecQuery("SELECT MACAddress " & _
    "FROM Win32_NetworkAdapter " & _
              "WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> " & _
              "'Microsoft'))")
    
    For Each MACobj In WMIobj
        ReDim s(UBound(s) + 1)
        s(UBound(s)) = MACobj.MACAddress
    Next MACobj
    
    MACAddressWMI = s
    Exit Function
ErrOut:
    MsgBox "Fehler! WMI ist nicht vorhanden"
End Function

Du könntest evtl mal gucken, was es da noch für tables gibt und ob du den Select-String ändern und die Karten damit auslesen kannst.

Quick 'n' very dirty:

Code:
shell "ipconfig /all > c:\net.txt"

und parse die net.txt nach "Beschreibung", weil da auch die Netzwerkkarten angegeben sind. Aber das ist echt dirty, und man muss mit timern arbeiten usw, weil man ja nciht weiß, wann ipconfig fertig ist und welches bs usw.


Gruß, Adrian
 
Zuletzt bearbeitet:
wie wärs mit Registry?

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards

lies dir die einfach aus. ;)
 
Zurück