web-dev-qa-db-fra.com

ID d'ordinateur unique

Je cherche un moyen d'obtenir un ID d'ordinateur unique.

Selon cet article je ne peux pas utiliser l'ID de processeur à cet effet. Puis-je prendre l'ID de la carte mère? Quelle est la meilleure façon d'identifier l'ordinateur?

30
StuffHappens

Comme vous l'avez dit, l'ID du processeur ne sera pas unique, mais vous pouvez l'utiliser avec un autre identifiant matériel pour créer votre propre clé unique.

Assemblage de référence System.Management

Donc, utilisez ce code pour obtenir l'ID du processeur:

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;
}

Utilisez ensuite ce code pour obtenir l'ID HD:

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

Ensuite, vous pouvez simplement combiner ces deux séries pour obtenir un ID unique pour cette machine:

string uniqueId = cpuInfo + volumeSerial;

De toute évidence, plus vous obtenez d'ID de composants matériels, plus l'unicité devient importante. Cependant, les chances qu'une même machine ait une série CPU et un disque dur identiques sont déjà minces.

37
djdd87

L'ID de la carte mère est un identifiant assez unique. Une autre option consiste à utiliser l'adresse MAC des cartes réseau, qui sont à peu près uniques.

4
Daniel Goldberg

Adresse MAC de la carte réseau? Identifiant de sécurité (SID) de l'installation du système d'exploitation Windows? (en supposant que ce sont des fenêtres que vous traitez) Pourriez-vous simplement générer un GUID pour chaque PC?

Qu'essayez-vous exactement de réaliser?

4
AndySw