2009-09-13 25 views
6

¿Cómo identificar de manera única la computadora (placa madre) usando C# (.Net/Mono, aplicación local)?¿Cómo identificar de manera única la computadora usando C#?

Edición. Podemos identificar la placa base en .Net usando algo como esto (ver Get Unique System Identifiers in C#):

using System.Management; 
... 
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_MotherboardDevice"); 
... 

Pero, por desgracia Mono no soporta System.Management. ¿Cómo hacerlo bajo Mono para Linux? - No sé :(

Respuesta

2

¿Qué tal el MAC address de la tarjeta de red?

+0

Quizás tengas razón. El método común simple para Windows y Linux que usa Mono es obtener la dirección MAC de la (s) tarjeta (s) de red. – macropas

+0

Utilizamos la dirección MAC de la (primera) tarjeta de red (¡puede haber más de una!), Y con varios cientos de clientes, esto cambia más a menudo de lo que pensábamos. Actualmente estamos buscando alternativas. – epalm

+0

estoy totalmente en desacuerdo, marca adddress puede ser falsificado! – Smith

3

Prueba esto:

http://carso-owen.blogspot.com/2007/02/how-to-get-my-motherboard-serial-number.html

Personalmente, sin embargo, me gustaría ir con el número de serie del disco duro Si una tarjeta madre muere y es reemplazado, que el PC no lo es. válido más. Si se reemplaza la unidad HDD, no importa demasiado porque el software estaba en ella.

Por supuesto, si la unidad de disco duro se acaba de mover a otra parte, la información va con ella , por lo que es posible que desee ver una combinación de números de serie, dependiendo de lo que desee.

+2

Tanto mis placas base como mis sistemas operativos tienden a sobrevivir a mis discos duros. Al menos hasta ahora. Hay cosas que se llaman "copias de seguridad" que permiten que un software OS + sobreviva a discos duros que están muriendo :-) – Joey

+0

Para mí, lo más singular que define una computadora es la unidad de disco duro. Usted toma el disco duro a otra placa base. ¿Cree que su computadora está vacía/con una nueva placa madre hdd o la que tiene todos sus datos, su sistema operativo, etc.? –

13

Escriba una función que tenga unos pocos parámetros de hardware únicos como entrada y genere un hash de ellos.

Por ejemplo, la activación de Windows observan las siguientes características de hardware:

  • Adaptador de pantalla
  • adaptador SCSI
  • IDE (de hecho, la placa base)
  • adaptador de red (NIC) y su MAC Dirección
  • RAM Rango de cantidad (es decir, 0-64mb, 64-128mb, etc.)
  • Tipo de procesador
  • Procesador Número de serie
  • disco duro del dispositivo
  • disco duro Volume Serial Number (VSN)
  • CD-ROM/CD-RW/DVD-ROM

Usted puede recoger algunas de ellos para generar su identificador de computadora único.

+5

Por otro lado, es posible que desee mantenerlos separados. Eso permitiría, por ejemplo, poner más memoria y permitir cambios siempre que sucedan uno a la vez. – Guffa

+0

Buena idea de generar un hash. –

1

Realmente tiene motherboardID, CPUID, disco de serie y dirección MAC, por experiencia ninguno de ellos es 100%.

Nuestras estadísticas muestran

  • serie de discos ¿Falta 0,1%
  • MAC ¿Falta 1.3%
  • Placa Base ID no existe 30%
  • CPUID no se encuentra el 99%

0,04% de las máquinas probadas dio ninguna información, ni siquiera se podía leer el nombre del equipo. Es posible que se tratara de algún tipo de PC virtual, instancia de HyperV o VMWare, o tal vez solo muy bloqueado? En cualquier caso, su diseño debe ser capaz de hacer frente a estos casos.

La serie de discos es la más confiable, pero fácil de cambiar, mac se puede cambiar y dependiendo del filtro aplicado al leer puede cambiar si se agregan controladores de dispositivo (hyperv, wireshark, etc.).

placa base y CPUID valores que no son válidos "NINGUNO" a veces vuelve, "AAAA ..", "XXXX ...", etc.

También debe tener en cuenta que estas funciones pueden ser muy lento para llamar (que puede tomar algunos segundos incluso en una PC rápida), por lo que puede valer la pena iniciarlos en un hilo de fondo tan pronto como sea posible, lo ideal es que no desee bloquearlos.

Cuestiones relacionadas