【发布时间】:2012-06-09 16:46:12
【问题描述】:
我想通过要求我的用户注册来保护一个应用程序。 我还想确保它们不能安装在两台以上的机器上。 为此,我需要知道在哪里可以找到唯一的硬件 ID 号,并在注册码中使用它。 我只需要知道如何使用代码获取该号码。
【问题讨论】:
-
你可能想看看这个SO Question 它是在 C# 中,但应该给你和想法。
我想通过要求我的用户注册来保护一个应用程序。 我还想确保它们不能安装在两台以上的机器上。 为此,我需要知道在哪里可以找到唯一的硬件 ID 号,并在注册码中使用它。 我只需要知道如何使用代码获取该号码。
【问题讨论】:
正如其他人所指出的,确实没有唯一的硬件 ID 这样的东西。其他人在你之前尝试过使用各种东西(例如主板序列号、CPU 序列号、HDD 序列号、MAC 地址)或这些东西的组合,但他们都有自己的问题。序列号并非总是由所有驱动程序返回,即使它们返回,如果硬件升级或更换,它们也可以轻松更改。此外,从技术上讲,序列号可以由不同的供应商重复,尤其是在虚拟机上。 MAC 地址是有问题的,因为通常有多个并且它们经常更改,尤其是使用 VPN 时。此外,MAC 地址通常由使用相同 VPN 软件的多台机器复制。您可以使用 Windows 安装序列号,但这也可以重复并随着操作系统升级而更改。简单的答案是,如果可能的话,不要。如果你必须做这样的事情,最好有一种方法,通过将加密的 GUID 写入硬盘驱动器上的某个位置,以编程方式标记每台安装了你的软件的计算机,并为你的支持人员提供一个简单的机制来重新标记任何计算机随意。
【讨论】: