Подтвердить что ты не робот

Уникальный идентификатор компьютера

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

4b9b3361

Ответ 1

Как вы сказали, 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:

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

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

string uniqueId = cpuInfo + volumeSerial;

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

Ответ 2

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

Ответ 3

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

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