bueno hoy tuve un rato mañanero libre y me puse a investigar por cuenta propia las clases del Namespace Networkinformation. Básicamente me recuerda al mítico comando ipconfig, que si te esmeras programando es como teclear ipconfig /all para listar todas las propiedades de los adaptadores de red.
Bueno lo que hace este sencillo ejemplo es listar todas las interfaces de Red, despues se pide ingresar un número que concuerde con una de las interfaces del menu y acto seguido se recogen las propiedades en un método y se muestran. Cabe decir que si no estás conectado a la red pues poca información obtendrás de la interfaz. Os dejo una screen de como queda.
Source:
Código
Imports System.Net.NetworkInformation Imports System.Text Imports System.Net Module Module1 Private Sub Enumerar_Interfaces() Dim InterfazRed() As NetworkInterface = NetworkInterface.GetAllNetworkInterfaces For i As Int32 = 0 To InterfazRed.Length - 1 If InterfazRed(i).Name.Contains("Loopback") Then Else Console.WriteLine(i & ")" & InterfazRed(i).Name) End If Next Console.WriteLine() Obtener_Propiedades(InterfazRed) End Sub Private Sub Obtener_Propiedades(ByVal InterfazRed() As NetworkInterface) Dim k As Int32 = 0 Console.WriteLine("Introduce un indice para visualizar las propiedades del adaptador deseado") k = Int32.Parse(Console.ReadLine()) If k >= 0 And k <= 9 Then Console.Clear() Console.WriteLine("Nombre de la Interfaz: " & InterfazRed(k).Name) Console.WriteLine("{0} " & InterfazRed(k).Speed / 1000000 & " {1}", "Velocidad Adaptador:", _ "Mbps") Console.WriteLine("Descripción: " & InterfazRed(k).Description) Console.WriteLine("GUID: " & InterfazRed(k).Id) Dim operativo As OperationalStatus = InterfazRed(k).OperationalStatus Select Case operativo Case 1 Console.WriteLine("Estado: Conectado") Dim PropiedadesIp As IPInterfaceProperties = InterfazRed(k).GetIPProperties With PropiedadesIp For Each unicast As UnicastIPAddressInformation In .UnicastAddresses If unicast.Address.AddressFamily = Sockets.AddressFamily.InterNetwork Then Console.WriteLine("Dirección IPv4: " & unicast.Address.ToString) Console.WriteLine("Máscara de Subred: " & unicast.IPv4Mask.ToString) Else Console.WriteLine("Direccion IPv6: " & unicast.Address.ToString) End If Next Console.Write("Servidor DHCP: ") For Each dhcp As IPAddress In .DhcpServerAddresses Console.WriteLine(dhcp) Next Console.WriteLine("Servidores DNS:") For Each servidor As IPAddress In .DnsAddresses Console.WriteLine(servidor) Next Console.Write("Puerta de Enlace: ") For Each gateway As GatewayIPAddressInformation In .GatewayAddresses Console.WriteLine(gateway.Address) Next Console.Write("Direccion Multicast: ") For Each multicast As MulticastIPAddressInformation In .MulticastAddresses Console.WriteLine(multicast.Address) Next End With Case 2 Console.WriteLine("Estado: Desconectado") End Select Dim MACByte As Byte() = InterfazRed(k).GetPhysicalAddress.GetAddressBytes Dim MAC As String = Nothing For Each byteMac As Byte In MACByte MAC += Hex((byteMac)) & ":" Next Console.WriteLine("MAC: " & MAC.Remove(MAC.Length - 1, 1) & vbNewLine) Else Console.Clear() Main() End If End Sub Sub Main() Try Enumerar_Interfaces() Catch ex As Exception End Try Console.Read() End Sub End Module
Saludos.