2009-08-29 15 views
6

Estamos usando direcciones MAC para identificar PC con licencia para ejecutar software. (No importa la falsificación MAC, las licencias son difíciles de obtener :) Las PC pueden tener múltiples controladores Ethernet (tampoco nos preocupamos por el caso donde no hay uno, no hemos encontrado una máquina así en 5 años), por lo que hay un problema al elegir de manera confiable un estable.¿Cómo obtener una dirección MAC estable para PC?

Pensé que teníamos esta clavada pero al parecer no. Usamos GetAdaptersInfo desde el módulo iphlpapi de Microsoft SDK, y recorremos la lista. Usamos el último adaptador en el que presumiblemente es el controlador Ethernet de la placa base. Por desgracia, nos encontramos con un Thinkpad que aparece para cambiar qué controlador es el último dependiendo de si está acoplado o no.

¿Existe alguna forma de encontrar de manera confiable la dirección MAC del controlador Ethernet de la placa base en un sistema, si existe? Y para las placas base que tienen 2 o más, elija una de ellas que sea estable? [Si sabía que un conjunto estaba basado en la placa base, puedo elegir fácilmente el MAC de dirección más bajo ].

Respuesta

2

No, no hay una manera confiable de hacerlo. Los dongles USB son baratos y fáciles: úsalos.

He tenido el "placer" de usar el software MAC bloqueado antes y todo lo que puedo decir es que no lo hagas.

+0

De acuerdo. Si evalauáramos este software (y en varios entornos virtuales), lo rechazaríamos debido a un sistema de licencias MAC inane ... – gbn

+1

Yo también he tenido el placer. En mi caso, el software eligió una dirección MAC "virtual" creada por un software VPN. ¿Adivina qué sucedió cuando desinstalé el software VPN? –

+0

Las llaves no son prácticas para productos de $ 100 (de los cuales tenemos una variedad). Trabajan para productos de $ 1000.00 (de los cuales tenemos algunos). –

3

Es un problema de lodo. ¿Cómo lidias con la virtualización? En mi máquina tengo varios adaptadores Ethernet, de los cuales solo uno está basado en hardware. Y todas mis máquinas virtuales tienen direcciones MAC generadas por software. Y, si realmente quiero, puedo configurar varias máquinas virtuales en diferentes computadoras con la misma dirección MAC (por supuesto, no en la misma red).

+0

De acuerdo, no es un método de licencia sabio. El OP debería implementar otro sistema. –

+0

Y sugeriría qué, eso es máquina única? –

1

no tengo una solución, pero puede haber otro problema:

Existe software de VPN que crea una tarjeta de red virtual y al azar asigna una nueva dirección MAC para esta tarjeta cada vez que se establece la conexión VPN.

+0

Lo que quiero es la dirección MAC para el controlador de ethernet en la placa base. Eso, presumiblemente, no es manipulado por VPN o cualquier otra cosa. –

2

No creo que haya ninguna manera confiable de determinar qué interfaz es "estable". Ciertamente, no sin profundizar en los detalles del hardware.

Pero, ¿qué pasa si te acercas a esto de otra manera? Puede hacer que el usuario elija la interfaz de una lista en la instalación, que probablemente no sea muy fácil de usar. O simplemente registre todas las direcciones MAC en el sistema y autentifíquese siempre que haya una activa.

También como referencia, el orden que GetAdaptersInfo devuelve puede ser cambiado por el usuario desde el menú Configuración avanzada en Conexiones de red.

+0

Lo de los usuarios que los barajan no me hace feliz. Pero probablemente no sea un gran problema; casi nadie lo hará. –

1

Yo también enfrenté el mismo problema y encontré un enfoque diferente here.

Windows almacena la descripción de las tarjetas de red físicas en el registro en HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkCards. La misma descripción también se enumera en el miembro "Descripción" de la estructura IP_ADAPTER_INFO. Así que supongo que puedo verificar si este valor figura en el registro para determinar si la dirección MAC pertenece o no a una tarjeta de red física.

Cuestiones relacionadas