У вас реально есть MotherboardID, CPUID, Disk Serial и MAC-адрес, по опыту, ни один из них не является 100%.
Наша статистика показывает
- Серийный диск отсутствует 0,1%
- MAC отсутствует 1,3%
- Отсутствует идентификатор материнской платы 30%
- CPUID отсутствует 99%
0,04% протестированных машин не дали никакой информации, мы даже не могли прочитать имя компьютера. Может быть, это был какой-то виртуальный ПК, экземпляр HyperV или VMWare, или, может быть, он был просто заблокирован? В любом случае ваш дизайн должен справиться с этими случаями.
Последовательность дисков является наиболее надежной, но простой в замене, mac может быть изменен и в зависимости от фильтрации, применяемой при чтении, может меняться при добавлении драйверов устройств (hyperv, wireshark и т. Д.).
Материнская плата и CPUID иногда возвращают недопустимые значения «NONE», «AAAA ..», «XXXX ...» и т. Д.
Вы также должны заметить, что эти функции могут быть очень медленными для вызова (они могут занять несколько секунд даже на быстром ПК), поэтому, возможно, стоит стереть их в фоновом потоке как можно раньше, в идеале не хочу блокировать их.