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