Генерация уникального идентификатора машины - PullRequest
98 голосов
/ 19 сентября 2008

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

В настоящее время я использую WMI для запроса различных аппаратных параметров, их объединения и хеширования для получения уникального идентификатора. У меня вопрос, какие параметры мне следует использовать? В настоящее время я использую комбинацию данных bios \ cpu \ disk для создания уникального идентификатора. И я использую первый результат, если есть несколько результатов для каждой метрики.

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

Для справки, я использую метрики:

Win32_Processor:UniqueID,ProcessorID,Name,Manufacturer,MaxClockSpeed
Win32_BIOS:Manufacturer
Win32_BIOS:SMBIOSBIOSVersion,IdentificationCode,SerialNumber,ReleaseDate,Version
Win32_DiskDrive:Model, Manufacturer, Signature, TotalHeads
Win32_BaseBoard:Model, Manufacturer, Name, SerialNumber
Win32_VideoController:DriverVersion, Name

Ответы [ 15 ]

0 голосов
/ 27 июня 2013

Попробуйте, это дает уникальный идентификатор жесткого диска: Порт DiskId32 для Delphi 7-2010 .

0 голосов
/ 19 сентября 2008

Можете ли вы вытащить какой-нибудь серийный номер производителя или метку обслуживания?

Наш магазин - это магазин Dell, поэтому мы используем сервисную метку, которая уникальна для каждой машины для их идентификации. Я знаю, что это можно сделать из BIOS, по крайней мере, в Linux, но я не знаю, как это сделать в Windows.

0 голосов
/ 19 сентября 2008

Может быть, немного обманывает, но MAC-адрес сетевого адаптера машины редко меняется без изменения материнской платы в наши дни.

0 голосов
/ 19 сентября 2008

Почему бы не использовать MAC-адрес вашей сетевой карты?

0 голосов
/ 19 сентября 2008

Посмотрите CPUID для одного варианта. Могут быть проблемы с многопроцессорными системами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...