Processador WIN32:: é ProcessorId único para todos os computadores
public static String GetCPUId()
{
String processorID = "";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(
"Select * FROM WIN32_Processor");
ManagementObjectCollection mObject = searcher.Get();
foreach (ManagementObject obj in mObject)
{
processorID = obj["ProcessorId"].ToString();
}
return processorID;
}
4 answers
Não, Não pode ser garantido que será único, como o processador pode nem mesmo suportar a instrução CPUID, e nesse caso, a chamada não pode ser garantida para ter sucesso.
Além disso, está a negligenciar que uma máquina pode ter múltiplos processadores, por isso, obter a identificação de um único processador não ajuda.Como outros indicaram, se você quiser obter um id único para o sistema, a sua melhor aposta é criar um id que é uma amálgama de vários ids componentes em sistema.
Um hash (e não apenas qualquer, mas aquele que tem Muito poucas colisões) de vários valores do hardware {[[9]}Pode bastar. Você provavelmente gostaria de usar coisas que estão bastante embutidas no sistema, como o processador, informações da placa-mãe, mas não coisas facilmente desligadas/alteradas, como drives USB/hubs/etc.
- Os endereços MAC de todos os adaptadores de rede (podem tornar-se complicados se tiverem uma estação de acoplagem ou activarem/desactivarem o seu wireless num portátil)
- CPUID
- números de componentes da placa-mãe (como os controladores IDE ou SCSI)
- Número de série da unidade de sistema (não Volume ID que é fácil de mudar)
- etc.
Note também que as classes WMI requerem frequentemente direitos de administração para ler o tipo de informação que está à procura, o que seria um verdadeiro aborrecimento para os utilizadores do Vista & Windows 7.
O bloqueio de hardware é muito é difícil acertar. Por isso recomendo qualquer um. não o faças nem 2. compre uma biblioteca comercial que já faça isso.O ProcessorID ou CPUID são para identificar o modelo e conjunto de características do processador ( ARM, x86 / x64 ).
O Pentium III suportava um número de série do processador (PSN). além de apenas ser suportado no Pentium III (e nos processadores Transmeta Efficeon e Crusoe), a funcionalidade teve de ser activada na BIOS e levantou preocupações de Privacidade.
Então, não, o ProcessorID não é único para todos os computadores. Além disso, é muito provável que não ser único em todos os computadores em sua empresa (uma vez que muitas organizações compram vários computadores do mesmo modelo).