ID de computador exclusivo
-
28-09-2019 - |
Pergunta
Estou procurando uma maneira de obter ID de computador exclusivo.
De acordo com esta postagem Não posso usar o ID do processador para esse fim. Posso pegar a identificação da placa -mãe? Qual é a melhor maneira de identificar o computador?
Solução
Como você disse, o ID da CPU não será único, mas você pode usá -lo com outro identificador de hardware para criar sua própria chave exclusiva.
Assembléia de referência System.Management
Portanto, use este código para obter o ID da CPU:
string cpuInfo = string.Empty;
ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["processorID"].Value.ToString();
break;
}
Em seguida, use este código para obter o ID HD:
string drive = "C";
ManagementObject dsk = new ManagementObject(
@"win32_logicaldisk.deviceid=""" + drive + @":""");
dsk.Get();
string volumeSerial = dsk["VolumeSerialNumber"].ToString();
Em seguida, você pode combinar esses dois seriados para obter um únicoID para essa máquina:
string uniqueId = cpuInfo + volumeSerial;
Obviamente, quanto mais componentes de hardware você obtém os IDs, maior a singularidade se torna. No entanto, as chances de a mesma máquina ter uma série de CPU idêntica e serial de disco rígido já são pequenas.
Outras dicas
O ID da placa -mãe é um identificador bastante único. Outra opção é usar o endereço MAC de cartões de rede, que são praticamente únicos.
Endereço MAC do adaptador de rede? Identificador de segurança (SID) da instalação do sistema operacional do Windows? (Supondo que seja o Windows com o qual você está lidando) Você poderia apenas gerar um GUID para cada PC?
O que exatamente você está tentando alcançar?