Domanda

Sto cercando un modo per ottenere ID computer univoco.

Secondo questo post Non posso usare l'ID processore per questo scopo. Posso prendere l'ID della scheda madre? Qual è il modo migliore per identificare il computer?

È stato utile?

Soluzione

Come hai detto, ID CPU non sarà unico, tuttavia puoi usarlo con un altro identificatore hardware per creare la tua chiave univoca.

Assemblaggio di riferimento System.Management

Quindi, usa questo codice per ottenere l'ID 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;
}

Quindi usa questo codice per ottenere l'ID HD:

string drive = "C";
ManagementObject dsk = new ManagementObject(
    @"win32_logicaldisk.deviceid=""" + drive + @":""");
dsk.Get();
string volumeSerial = dsk["VolumeSerialNumber"].ToString();

Quindi, puoi semplicemente combinare questi due seriali per ottenere un unicoid per quella macchina:

string uniqueId = cpuInfo + volumeSerial;

Ovviamente, più componenti hardware ottieni gli ID, maggiore diventa l'unicità. Tuttavia, le possibilità che la stessa macchina abbiano un seriale seriale e disco rigido identico non sono già scarse a nessuno.

Altri suggerimenti

L'ID della scheda madre è un identificatore piuttosto univoco. Un'altra opzione è quella di utilizzare l'indirizzo MAC delle schede di rete, che sono praticamente unici.

Indirizzo MAC dell'adattatore di rete? Identificatore di sicurezza (SID) dell'installazione del sistema operativo Windows? (Supponendo che sia Windows con cui hai a che fare) Potresti semplicemente generare un GUID per ogni PC?

Cosa stai cercando esattamente di ottenere?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top