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?

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top