我怎样才能唯一地标识一台计算机

how can I Uniquely identify a computer

我想开发一个可以连接到服务器并唯一标识客户端的应用程序,然后授予他们对服务器数据库进行 运行 特定查询的权限。 我怎样才能以独特的方式识别客户。 MAC 地址是否足够可靠?还是我应该使用 CPU id 之类的东西?

澄清:我没有为我的应用创建注册码。因为它应该是一个免费的应用程序。我想通过一个 id 检测每个客户端,并决定哪个客户端可以 运行 服务器上的特定方法的权限。

这个问题似乎已经被详细询问和回答(尽管你可能不喜欢这些答案,因为它们似乎加起来是:这是有问题的。)我同意 Xefan 的评论,更多的细节将有助于定义你的问题。这是早前对此的讨论 link:

What is a good unique PC identifier?

通常的做法是给每个客户端一个登录名(名称+密码)。这样,当客户端需要升级或出现故障时,很容易更换客户端。

MAC 地址应该是唯一的,但没有强制执行此规则的中央注册表。也有改的工具,所以只是有点靠谱。

CPU 硬盘 ID 更难更改,但当硬盘坏了或升级系统时,人们会抱怨。

许多 PC 都有 TPM 模块,这些模块有自己的 ID,但可以禁用它们并擦除 ID。此外,还有隐私问题(人们不喜欢软件自动跟踪他们)。

自动 ID 方法的另一个问题是如何在服务器上识别它们。当多个客户端快速连续首次连接时,您将很难区分它们。