Identificador unico

25/06/2009 - 17:48 por Catalin Lungu | Informe spam
Hola a todos,
Estoy buscando algún identificador unico de un dispositivo, pero que sea
realmente unico. Por la experiencia se que la dirección mac no es unica y
ademas se puede cambiar. Se podria leer el serial de la placa base o la del
micro? O el numero de serie del disco duro, pero no el de la partición
logica. El problema es que tengo 400 equipos que se tendrán que identificar
y necesito que el identificador sea unico. Por ejemplo en las PDA(s) lo
tengo resuelto porque el fabricante ya le ha metido un GUID al terminal y lo
puedo leer. Pero los demas son PC(s) y PC(s)industriales que corren XP y son
de tamaño de una PDA. Para estos no me sirve el serial del hdd porque van
con memoria flash.

Alguna ideea?
Gracias.

Preguntas similare

Leer las respuestas

#1 Angel J. Hernández M.
26/06/2009 - 10:06 | Informe spam
Podrías utilizar WMI para obtener el serial de la tarjeta madre con el
siguiente WQL

select * from win32_baseboard // La columna que te interesa es SerialNumber

o el serial del disco duro con

select * from win32_diskdrive // La columna que te interesa es SerialNumber

Puedes probar ambos queries desde Windows Management Instrumentation Tester

o si quieres llegar a un nivel más bajo puedes utilizar DeviceIoControl (en
Kernel32.dll)

Saludos,


Angel J. Hernández M
MCP,MCAD,MCSD,MCDBA
Microsoft MVP
http://msmvps.com/blogs/angelhernandez
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
http://www.customware.net
Tecnical Solutions Architect


"Catalin Lungu" wrote in message
news:#
Hola a todos,
Estoy buscando algún identificador unico de un dispositivo, pero que sea
realmente unico. Por la experiencia se que la dirección mac no es unica y
ademas se puede cambiar. Se podria leer el serial de la placa base o la
del micro? O el numero de serie del disco duro, pero no el de la partición
logica. El problema es que tengo 400 equipos que se tendrán que
identificar y necesito que el identificador sea unico. Por ejemplo en las
PDA(s) lo tengo resuelto porque el fabricante ya le ha metido un GUID al
terminal y lo puedo leer. Pero los demas son PC(s) y PC(s)industriales que
corren XP y son de tamaño de una PDA. Para estos no me sirve el serial del
hdd porque van con memoria flash.

Alguna ideea?
Gracias.

Respuesta Responder a este mensaje
#2 Fernando A. Gómez F.
26/06/2009 - 17:32 | Informe spam
Catalin Lungu wrote:
Hola a todos,
Estoy buscando algún identificador unico de un dispositivo, pero que sea
realmente unico. Por la experiencia se que la dirección mac no es unica y
ademas se puede cambiar. Se podria leer el serial de la placa base o la del
micro? O el numero de serie del disco duro, pero no el de la partición
logica. El problema es que tengo 400 equipos que se tendrán que identificar
y necesito que el identificador sea unico. Por ejemplo en las PDA(s) lo
tengo resuelto porque el fabricante ya le ha metido un GUID al terminal y lo
puedo leer. Pero los demas son PC(s) y PC(s)industriales que corren XP y son
de tamaño de una PDA. Para estos no me sirve el serial del hdd porque van
con memoria flash.

Alguna ideea?
Gracias.





System.Guid
http://msdn.microsoft.com/en-us/lib....guid.aspx

"A GUID is a 128-bit integer (16 bytes) that can be used across all
computers and networks wherever a unique identifier is required. Such an
identifier has a very low probability of being duplicated."

Desde la época de C++/COM se emplean los GUIDs como identificadores
únicos. Cierto es que hay una pequeñísima posibilidad de que sean
duplicados, pero tendrían que coincidir ciertos números de hardware,
fecha y hora y suerte. Así que yo usaría esos.

Saludos.

Fernando Gómez
www.fermasmas.com
Respuesta Responder a este mensaje
#3 Catalin Lungu
03/07/2009 - 09:49 | Informe spam
Primera prueba, primer fallo. Parece ser que mi equipo no tiene serial.
Tendré que buscar otra cosa que no falle. public static string
GetMotherBoardSN(){string resul = "";ManagementObjectSearcher mos = new
ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM
Win32_BaseBoard");foreach (ManagementObject mo in mos.Get()){try{resul =
mo.GetPropertyValue("SerialNumber").ToString();}catch{ }}return resul;}
Respuesta Responder a este mensaje
#4 Sashka
03/07/2009 - 16:39 | Informe spam
Hace años usé esto
http://www.winsim.com/diskid32/diskid32.html

Sashka

"Catalin Lungu" escribió en el mensaje de
noticias:#n2$RL7#
Primera prueba, primer fallo. Parece ser que mi equipo no tiene serial.
Tendré que buscar otra cosa que no falle. public static string
GetMotherBoardSN(){string resul = "";ManagementObjectSearcher mos = new
ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM
Win32_BaseBoard");foreach (ManagementObject mo in mos.Get()){try{resul =
mo.GetPropertyValue("SerialNumber").ToString();}catch{ }}return resul;}

Respuesta Responder a este mensaje
#5 Pedro Maicas
04/07/2009 - 10:51 | Informe spam
On Fri, 3 Jul 2009 09:49:25 +0200, "Catalin Lungu"
wrote:

Primera prueba, primer fallo. Parece ser que mi equipo no tiene serial.
Tendré que buscar otra cosa que no falle. public static string
GetMotherBoardSN(){string resul = "";ManagementObjectSearcher mos = new



La utilidad de obtener un número único para el PC, es la
misma que tener un número como el que identifica a la
particion. Un hacker (o llamale cracker) piratea un
programa de la misma forma en ambos casos, en unos pocos
minutos, y sin necesidad de saber qué usas para identificar
el equipo.

No viene mal saber piratear programas para hacerse una idea
de lo que resulta util/inutil para evitar eso mismo.


Saludos :-) - Pedro -

http://www.maicas.net/
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida