Уникальный идентификатор компьютера - PullRequest
29 голосов
/ 13 августа 2010

Я ищу способ получить уникальный идентификатор компьютера.

Согласно этой записи Я не могу использовать идентификатор процессора для этой цели.Могу ли я взять ID материнской платы?Как лучше всего идентифицировать компьютер?

Ответы [ 3 ]

37 голосов
/ 13 августа 2010

Как вы сказали, CPU Id не будет уникальным, однако вы можете использовать его с другим идентификатором оборудования для создания собственного уникального ключа.

Справочная сборка System.Management

Итак, используйте этот код для получения идентификатора процессора:

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

Затем используйте этот код, чтобы получить HD ID:

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

Затем вы можете просто объединить эти два сериала, чтобы получить уникальный идентификатор для этой машины:

string uniqueId = cpuInfo + volumeSerial;

Очевидно, что чем больше аппаратных компонентов вы получаете идентификаторы, тем больше становится уникальность. Однако шансы того же компьютера, имеющего идентичный последовательный процессор и жесткий диск, уже невелики.

4 голосов
/ 13 августа 2010

MAC-адрес сетевого адаптера?Идентификатор безопасности (SID) ОС Windows установить?(при условии, что вы работаете с Windows) Можете ли вы просто сгенерировать GUID для каждого ПК?

Что именно вы пытаетесь достичь?

3 голосов
/ 13 августа 2010

Идентификатор материнской платы - довольно уникальный идентификатор. Другой вариант - использовать MAC-адрес сетевых карт, которые в значительной степени уникальны.

...