2012-06-09 99 views
1

我有一个应用程序,我想通过要求我的用户注册来进行保护。 我也想确保它们不能安装在两台以上的机器上。 为此,我需要知道在哪里可以找到唯一的硬件ID号码,并在注册码中使用它。 我需要知道的是如何使用代码获取该数字。VB.NET上的唯一硬件ID

+0

你可能想看看这个[SO问题](http://stackoverflow.com/q/9039212/479512)它是在C#中,但应该给你和想法。 –

+0

可能的重复[VB.net独特的硬件ID想法](http://stackoverflow.com/questions/2994549/vb-net-unique-hardware-id-ideas) –

回答

2

正如其他人所指出的那样,确实没有独特的硬件ID这样的东西。在尝试使用各种东西(例如,主板序列号,CPU序列号,HDD序列号,MAC地址)或这些事物的组合之前,其他人已经来过,但它们都以各自的方式出现问题。序列号并不总是由所有驱动程序返回,即使它们这样做,如果硬件升级或更换,它们也可以轻松更改。此外,序列号在技术上可以由不同的供应商重复使用,尤其是在虚拟机上。 MAC地址是有问题的,因为通常有多个,并且它们经常变化,特别是对于VPN。另外,MAC地址通常由多台机器使用相同的VPN软件复制。您可以使用Windows安装序列号,但这也可以复制并随操作系统升级而更改。简单的答案是,如果可能的话,不要。如果您必须这样做,最好有一种方法可以通过编写加密的GUID到硬盘上的某个位置来以编程方式标记每台安装有软件的计算机,并为您的支持人员提供一种简便的机制来重新存储任何计算机随意。