Ethernet auslesen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von exc-jdbi.

    Ethernet auslesen

    Moin zusammen,

    ich zerbrech mir seit Tagen den Kopf wie ich an die IPv4 Adressen komme, wenn ich mehrere Netzwerkschnittstellen im PC/Server eingebaut habe.
    Das Auflisten der einzelnen Netzwerkkarten klappt und hab ich auch schon eingegrenzt, leider bisher ohne IPv4.

    Hier der Code den ich aktuell habe:

    VB.NET-Quellcode

    1. Private Sub check_networks()
    2. ' NetzwerkInterface-Objekt
    3. Dim oInterface As NetworkInterface
    4. ' ListBox-Inhalt löschen
    5. ListBox2.Items.Clear()
    6. ' alle verfügbaten Netzwerk-Interfaces durchlaufen
    7. For Each oInterface In NetworkInterface.GetAllNetworkInterfaces()
    8. With oInterface
    9. ' nur wenn es sich um kein LoopBack/Tunnel-Interface handelt...
    10. If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso .NetworkInterfaceType <> NetworkInterfaceType.Tunnel AndAlso .NetworkInterfaceType <> NetworkInterfaceType.Unknown Then
    11. ' in die ListBox schreiben
    12. Dim st_con As String
    13. If .OperationalStatus.ToString = "Up" Then
    14. st_con = "aktiv"
    15. Else
    16. st_con = "deaktiviert"
    17. End If
    18. Dim nw_dhcp As Boolean = .GetIPProperties.GetIPv4Properties.IsDhcpEnabled
    19. Dim nw_dhcp_text As String
    20. If nw_dhcp = True Then
    21. nw_dhcp_text = "ja"
    22. Else
    23. nw_dhcp_text = "nein"
    24. End If
    25. 'Dim nw_address As Boolean = .GetPhysicalAddress.ToString
    26. Dim nw_mac_address_text As String = .GetPhysicalAddress.ToString
    27. Dim nw_ipv4 As String
    28. ListBox2.Items.Add(.Name.ToString & " - Status: " & st_con & " - DHCP: " & nw_dhcp_text & " - IPv4: " & nw_ipv4 & " - MAC: " & nw_mac_address_text)
    29. End If
    30. End With
    31. Next
    32. End Sub




    Jemand eine Idee wie ich an die IPv4 komme?
    Hab mir auf der MSDN schon alles durchgeschaut aber ich komm ständig auf WMI. Ein Mischbetrieb mit .Net Namensräumen und WMI geht meines Wissens nicht oder doch?

    Danke und Grüße,

    SaMsOn

    *Topic verschoben*
    Nein! Doch! OHH!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hier ein Beispiel:

    VB.NET-Quellcode

    1. For Each nic As Net.NetworkInformation.NetworkInterface In Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces
    2. If nic.NetworkInterfaceType <> Net.NetworkInformation.NetworkInterfaceType.Loopback AndAlso
    3. nic.NetworkInterfaceType <> Net.NetworkInformation.NetworkInterfaceType.Tunnel AndAlso
    4. nic.NetworkInterfaceType <> Net.NetworkInformation.NetworkInterfaceType.Unknown Then
    5. For Each addr As Net.NetworkInformation.UnicastIPAddressInformation In nic.GetIPProperties.UnicastAddresses
    6. If addr.Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then
    7. Debug.Print(nic.Name & " - " & addr.Address.ToString)
    8. End If
    9. Next
    10. End If
    11. Next

    Versuchs mal bitte irgendwie so

    Freundliche Grüsse

    exc-jdbi

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub WmiIdInfo4()
    2. Dim _propname As String() = "Index DeviceID NetConnectionID Caption IPEnabled DHCPEnabled MACAddress IPAddress".Split
    3. Dim _queries = New List(Of String) From {"SELECT * FROM Win32_NetworkAdapterConfiguration"}
    4. For Each mos As ManagementObject In New ManagementObjectSearcher(_queries(0)).Get
    5. _queries.Add(String.Format("ASSOCIATORS OF {0}Win32_NetworkAdapterConfiguration.Index='{2}'{1} WHERE ResultClass = Win32_NetworkAdapter", "{", "}",
    6. mos(_propname(0)).ToString))
    7. For Each mos2 As ManagementObject In New ManagementObjectSearcher(_queries.Last).Get
    8. Console.WriteLine("Win32_NetworkAdapter.DeviceID = {0}", mos2(_propname(1)))
    9. Console.WriteLine("Win32_NetworkAdapter.NetConnectionID = {0}", If(mos2(_propname(2)), "Nothing"))
    10. Console.WriteLine("Win32_NetworkAdapterConfiguration.Index = {0}", mos(_propname(0)))
    11. Console.WriteLine("Win32_NetworkAdapterConfiguration.Caption = {0}", mos(_propname(3)))
    12. Console.WriteLine("Win32_NetworkAdapterConfiguration.IPEnabled = {0}", mos(_propname(4)))
    13. Console.WriteLine("Win32_NetworkAdapterConfiguration.DHCPEnabled = {0}", mos(_propname(5)))
    14. Console.WriteLine("Win32_NetworkAdapterConfiguration.MACAddress = {0}", If(mos(_propname(6)), "Nothing"))
    15. Dim ipadress = DirectCast(mos(_propname(7)), String())
    16. If ipadress IsNot Nothing Then
    17. Console.WriteLine("Win32_NetworkAdapterConfiguration.IPAddress")
    18. Array.ForEach(ipadress, Sub(s) Console.WriteLine(s))
    19. End If
    20. Console.WriteLine()
    21. Console.WriteLine(" *********** *********** *********** *********** ")
    22. Console.WriteLine()
    23. Next
    24. Next
    25. End Sub



    Kannst aber auch bei dir den Code von 29-33 ersetzen mit
    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Dim nw_address As Boolean = .GetPhysicalAddress.ToString
    2. Dim nw_mac_address_text = .GetPhysicalAddress.ToString
    3. For Each addr As UnicastIPAddressInformation In .GetIPProperties.UnicastAddresses
    4. If addr.Address.AddressFamily = AddressFamily.InterNetwork Then
    5. Dim nw_ipv4 = addr.Address.ToString
    6. ListBox2.Items.Add(.Name & " - Status: " &
    7. st_con & " - DHCP: " &
    8. nw_dhcp_text & " - IPv4: " & nw_ipv4 &
    9. " - MAC: " & nw_mac_address_text)
    10. End If
    11. Next

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „exc-jdbi“ ()