【问题标题】:Uniquely identifying a computer using MAC address / or other hardware identifier [duplicate]使用 MAC 地址/或其他硬件标识符唯一标识计算机 [重复]
【发布时间】:2012-09-27 07:37:22
【问题描述】:

首先,我想说的是,我在 stackoverflow 和其他地方发布了很多类似的问题,但他们似乎没有回答我的确切问题。

我知道没有办法万无一失的软件注册等,这只是我试图弄清楚的一种方式,这样每个人都很难破解我正在制作的软件。

我一直在寻找使用 Mac 地址唯一标识用户(用于软件注册目的)。我正在开发的平台是 Java。 现在,从 InetAddress 获取 Mac 地址对我来说有点冒险——当计算机有多个 MAC 地址(多个 NIC)时,就会有多个连接选项——通过 Wifi、以太网电缆、3G 加密狗等。不同的连接选项返回不同的 InetAddress以及与它们关联的不同 Mac - 因此我无法根据 Mac 地址的这个变化值验证用户的软件许可证。

还有其他方法可以唯一地识别计算机吗?可以通过 Java 完成的任何其他硬件身份验证(独立于平台 - 适用于 Windows、Mac 和 Linux)。

谢谢

【问题讨论】:

  • 有些人确实升级他们的电脑...如果硬件突然改变你会怎么做?

标签: java licensing


【解决方案1】:

首先,您在设计此类解决方案时应该非常小心。没有一种方法是万无一失的,您可能可以设计一个更简单的解决方案来阻止随意复制。

无论如何,如果您打算检查硬件身份,我建议您检查系统中的许多设备(即网络适配器、hard drive serial number、cpu 类型等),然后留出大量余量以避免用户使用时出现问题升级他们的系统。

【讨论】:

  • 但是有没有一种方法可以在 Java 中使用 - 跨平台(不仅适用于 Windows)?
  • 正如您在我链接到的问题中看到的那样,您可能必须单独处理磁盘 s/n 的 win/linux/mac/... 情况。至少设备名称不同。这可能适用于大多数硬件探测。 cpu类型可能是win上的WMI和linux上的/proc/cpuinfo。
猜你喜欢
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2016-09-09
  • 2010-11-27
相关资源
最近更新 更多