2009-05-05 42 views
14

estoy jugando un poco con la recuperación de la dirección MAC de la tarjeta de red - hay una variedad de maneras de conseguirlo, este artículo cubre los más comunes:¿Cómo obtener la dirección MAC de hardware en Windows

http://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451

Actualmente estoy usando el método GetAdaptersInfo, lo que parece más a prueba de balas, pero si la dirección MAC se ha establecido a través del registro:

http://www.mydigitallife.info/2008/06/30/how-to-change-or-spoof-mac-address-in-windows-xp-vista-server-20032008-mac-os-x-unix-and-linux/

A continuación se informa de la dirección MAC que ha sido c ahorcado. La única forma que he encontrado para obtener el verdadero MAC es eliminar la entrada del registro, reiniciar el NIC, obtener el MAC a través de GetAdaptersInfo, luego reemplazar la entrada del registro y reiniciar el NIC. Mientras hace el trabajo, no es transparente para el usuario.

¿Hay algún otro método con el que cualquiera esté familiarizado, que devuelva el hardware MAC sin importar en qué está configurado el registro? Idealmente, me gustaría una solución que funcione en XP en marcha.

¡Gracias de antemano!

Respuesta

2

Supongo que en el artículo CodeGuru vinculado, la solución Miniport es probable que supere el problema que describe, aunque sea doloroso de implementar. La razón por la que creo que esto es porque ya utilicé la solución GetAdaptersInfo en el pasado, y noté que la dirección MAC cambiará sin reiniciar cuando se agrega un adaptador, p. un adaptador Bluetooth que proporciona servicios PAN.

Quizás en lugar de reiniciar después de cambiar la configuración del registro, intente detener y reiniciar los servicios de red pertinentes. Puede verificar esto manualmente antes de buscar una solución programática.

(n.b. el anterior es todo el trabajo de adivinar. Si lo intentas y funciona, tal vez agregue una publicación para aquellos que intentan hacer lo mismo en el futuro).

+0

Parece que la solución de Miniport funciona, pero tiene una gran probabilidad de no ser compatible en el futuro. He encontrado este enlace de los gurús más de NDIS en PCUSA: http://www.pcausa.com/Utilities/macaddr2.htm Si modifica su ejemplo para consultar OID_802_3_PERMANENT_ADDRESS en lugar de OID_802_3_CURRENT_ADDRESS, devuelve la dirección de hardware. – Mark

+0

@Mark - algunos cuando en los últimos 8 años, ese enlace se ha quedado obsoleto. :( –

0

analizar la salida de ipconfig /all

+0

ipconfig/all (al menos en Vista) solo muestra la dirección MAC del registro. – Mark

0

Puede utilizar WMI para enumerar los casos Win32_NetworkAdapter y mirar a la propiedad MACAddress. El problema principal de esta técnica es encontrar la instancia de adaptador adecuada si tiene múltiples adaptadores activos instalados, p. en una computadora portátil que también tiene una conexión inalámbrica.

Cuestiones relacionadas