Pregunta

Un programa en el que trabajo asume que el UUID generado por la llamada a la API RPC de Windows UuidCreateSequential () contiene la dirección MAC del adaptador ethernet primario. ¿Es correcta esta suposición o debería usar un método diferente para obtener la dirección MAC?

¿Fue útil?

Solución

No confiaría en esto: la única razón por la que UuidCreateSequential tiene la dirección MAC es porque está tratando de garantizar que el UUID sea único en toda la red. Además, ¿por qué usarías una forma tan extraña de obtener una dirección MAC? Use WMI y realmente solicite la dirección MAC en lugar de un efecto secundario de una función de creación de UUID.

Otros consejos

Esto parece ser una suposición válida. La documentación en MSDN dice específicamente que contendrá la dirección de ethernet tarjeta en la máquina. No menciona nada sobre un escenario de múltiples tarjetas, pero elegir la tarjeta principal parece ser un salto lógico.

Si está escribiendo un código administrado, usaría el NetworkInterface clase y llame a GetAllNetworkInterfaces () . O desde el código C ++, llame a GetAdaptersInfo , que es lo que usa la implementación administrada.

Incluso si UuidCreateSequential funciona para esto, es una forma bastante oscura de obtener la información y oculta posibles problemas como una computadora que tiene más de un adaptador.

Solo un UUID de la versión 1 contiene una dirección MAC, y solo si el generador original tenía acceso a la dirección MAC para empezar. Si el generador original no tuviera acceso a una dirección MAC, habría utilizado 6 bytes aleatorios provenientes de un generador de números aleatorios criptográficamente seguro, según la sección 4.5 del RFC 4122. Debido a esto, no hay garantía de que la dirección MAC dado en un UUID es en realidad una dirección MAC.

En la mayoría de los casos, la única razón por la que alguien necesitaría analizar la dirección MAC de un UUID es para fines forenses. Vea, por ejemplo, los UUID integrados en la carga útil del documento de Word para el virus Melissa. Los investigadores extrajeron la dirección MAC de estas ID y la asociaron con la dirección MAC del adaptador de red principal del sospechoso.

Si está tratando de obtener la dirección MAC de su propia computadora, hay formas mucho mejores de hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top