[Vb.Net] Obtener información de dirección MAC

Iniciado por Mario Núñez, 28 Diciembre 2015, 19:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Mario Núñez

se puede obtener en VB.net la IP asociada a una MAC dentro del equipo??

Gracias por adelantado :)
cogito ergo sum (ns que significa T.T)

Eleкtro

#1
Puedes hacerlo con WMI


Código (vbnet) [Seleccionar]
   Public Shared ReadOnly Iterator Property MacAddresses() As IEnumerable(Of KeyValuePair(Of String, String))
       Get
           For Each mo As ManagementObject In New ManagementClass("Win32_NetworkAdapterConfiguration").GetInstances

               If CBool(mo("IPEnabled")) Then
                   Dim mac As String = DirectCast(mo("MACAddress"), String)
                   Dim ipv4 As String = DirectCast(mo("IPAddress"), String())(0)

                   Yield New KeyValuePair(Of String, String)(mac, ipv4)
               End If

           Next mo
       End Get
   End Property


obj.Key   = dirección MAC
obj.Value = dirección IPv4


También puedes hacerlo con la class System.Net.NetworkInformation.NetworkInterface, encontrarás muchos ejemplos en Google, pero a mi modo de ver requiere bastante más esfuerzo para realizar al detalle las condicionales con las que filtrar las interfaces indeseadas/falsos positivos que puedas tener instalados en el equipo.

La desventaja de utilizar WMI es que las peticiones tardan un tiempo desproporcionado (relativamente hablando en milisegundos).

Nota: Los títulos de los mensajes deben ser descriptivos, "duda con Vb.Net" no describe el problema.

Saludos!








Mario Núñez

#2
muchísimas gracias Electro; y tienes razón lo probé con "System.Net.NetworkInformation.NetworkInterface" y el código se alargaba demasiado, ademas es para un programa que funcionara en servidores así que creo que ir capturando cada tarjeta de red una por una puede ser un coñazo XD,  lo probare con WMI, muchas gracias.

Saludos :)
cogito ergo sum (ns que significa T.T)