Уникальный идентификатор компьютера
-
28-09-2019 - |
Вопрос
Я ищу способ получить уникальный идентификатор компьютера.
В соответствии с эта почта Я не могу использовать идентификатор процессора для этой цели.Могу ли я получить идентификатор материнской платы?Как лучше всего идентифицировать компьютер?
Решение
Как вы сказали, что идентификатор CPU не будет уникальным, однако вы можете использовать его с другим идентификатором оборудования для создания собственного уникального ключа.
Эталонная сборка 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();
Затем вы можете просто объединить эти два сериала, чтобы получить UniqueId для этой машины:
string uniqueId = cpuInfo + volumeSerial;
Очевидно, что более аппаратные компоненты вы получаете идентификаторы, тем больше уникальность становится. Тем не менее, шансы на одну и ту же машину, имеющую идентичные серийный и жесткий диск CPU и жесткого диска, уже нет.
Другие советы
Идентификатор материнской платы - это довольно уникальный идентификатор. Другой вариант - использовать MAC-адрес сетевых карт, которые в значительной степени уникальны.
MAC-адрес сетевого адаптера?Идентификатор безопасности (SID) установленной ОС Windows?(Предполагая, что это Windows, с которыми вы имеете дело), не могли бы вы просто генерировать GUID для каждого ПК?
Чего именно вы пытаетесь достичь?