Question

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

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

Était-ce utile?

La solution

Comme vous l'avez dit, l'ID CPU 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

Alors, utilisez ce code pour obtenir 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;
}

Ensuite, utilisez 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 Uniqueid pour cette machine:

string uniqueId = cpuInfo + volumeSerial;

De toute évidence, plus les composants matériels dont vous obtenez les identifiants sont élevés, plus l'unicité devient grande. Cependant, les chances de la même machine ayant une série de CPU et un disque dur identiques sont déjà minces.

Autres conseils

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.

Adresse MAC de l'adaptateur réseau? Identifiant de sécurité (SID) de l'installation de Windows OS? (En supposant que ce sont des fenêtres avec lesquelles vous avez affaire) pourriez-vous simplement générer un GUID pour chaque PC?

Qu'essayez-vous exactement?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top