![]() |
1
2
那呢? MAC address 网络卡的? |
![]() |
2
13
编写一个函数,该函数接受一些唯一的硬件参数作为输入,并从中生成散列值。 例如,Windows激活会查看以下硬件特性:
您可以选择其中一些来生成您唯一的计算机标识符。 |
![]() |
3
5
|
![]() |
4
3
试试这个: http://carso-owen.blogspot.com/2007/02/how-to-get-my-motherboard-serial-number.html 但就我个人而言,我会使用硬盘序列号。如果主板死机并被更换,则该PC不再有效。如果更换了硬盘驱动器,这并不重要,因为上面有软件。 当然,另一方面,如果HDD刚被移到别处,信息也会随之而去,因此您可能需要查看序列号的组合,这取决于您想要它的用途。 |
![]() |
5
3
实际上,您有主板ID、CPU ID、磁盘序列号和MAC地址,根据经验,它们都不是100%。 我们的统计显示
0.04%的被测机器没有信息,我们甚至无法读取计算机名。也许这些是某种虚拟PC、hyper或vmware实例,或者只是非常锁定?无论如何,你的设计必须能够应付这些情况。 磁盘串行是最可靠的,但很容易更改,Mac可以更改,并且取决于读取时应用的过滤,如果添加设备驱动程序(hyper、wireshark等),它可以更改。 主板和cpuid有时返回无效的值“none”、“aaaa..”、“xxxx…”等。 您还应该注意,这些函数的调用速度可能非常慢(即使在快速的PC上,它们也可能需要几秒钟),因此可能值得尽早在后台线程上启动它们,理想情况下,您不希望阻塞它们。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |