我想使用网络 MAC 地址作为唯一的机器 ID 用于许可目的。我认为这有一些缺点,尽管这是标准的做法(如果客户交换网卡,我可以处理客户必须要求额外的解锁代码)。
但是,如果客户在他们的机器上安装了 vmware,这不会添加虚拟网络接口吗?有没有办法区分这些和真实的?
是的,但虚拟 MAC 地址在特定范围内。另外,如果他们把它放在一个 vmware 盒子里,然后移动它,通常默认情况下这也想改变他们的 mac 地址。他们需要意识到这一点。
我在这台机器上没有要查找的 vmware,但它以特定代码开头。就像虚拟机也有特定的代码一样
我认为如果您告诉您的程序始终访问第一张网卡,那么他是否添加更多(无论是真实的还是虚拟的)都没有关系,除非他将其设置为他的第一张网卡。
将软件锁定到硬件对用户来说确实很不方便,并且可能导致他们停止使用您的软件。
您是否考虑过使用网络服务授权您的软件?
如:
客户端 --> Web 服务 --> 数据库
Web 服务检查用户是否输入了正确的用户名/密码,并返回真/假。
无论如何,如果您真的想将其锁定到硬件,我建议您实际上混合使用硬件 ID,如主板/cpu/硬盘驱动器。
您可以在这里找到更多信息:
http://www.codeproject.com/Articles/17973/How-To-Get-Hardware-Information-CPU-ID-MainBoard-I