Diese Aufgabe stellte sich mir gerade. Im Internet fand ich zwei Lösungswege; der Weg über NetworkInformation erschien mir besser:
Imports N = System.Net.NetworkInformation
Module Module1
Sub Main()
Dim aoAlleInterfaces() As N.NetworkInterface
Dim oInterface As N.NetworkInterface, oUnicastIpAdressInfoCollection As N.UnicastIPAddressInformationCollection
Dim iAnzahl As Integer , iZaehler As Integer , oUnicastIpAdressInfo As N.UnicastIPAddressInformation
Console.WriteLine("Start" )
aoAlleInterfaces = N.NetworkInterface.GetAllNetworkInterfaces
For Each oInterface In aoAlleInterfaces
oUnicastIpAdressInfoCollection = oInterface.GetIPProperties().UnicastAddresses
iAnzahl = oUnicastIpAdressInfoCollection.Count
For iZaehler = 0 To iAnzahl - 1
oUnicastIpAdressInfo = oUnicastIpAdressInfoCollection(iZaehler)
If oUnicastIpAdressInfo.Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then
Console.WriteLine("Treffer" )
Console.WriteLine(oUnicastIpAdressInfo.Address.ToString)
End If
Next
Next
Console.WriteLine("Ende" )
Console.ReadKey()
End Sub
End Module
Als Vorbild diente ein Beispiel von Justus Bisser. Seine Lösung ist in C# geschrieben und nutzt LINQ; zur Anschauung habe ich es aufgedröselt.
Keine Kommentare:
Kommentar veröffentlichen