3

我有一台双核 PC,它有两个 MAC 地址:00-1D.... & 00-21....... 这些 ID 是两个核的吗?如果我想获得这台 PC 的唯一 ID,如何通过 Java 调用获得它?也许Java中有类似“System.getId()”的东西?

坦率

4

5 回答 5

4

MAC 代表媒体访问控制。MAC 地址通常代表您的网络适配器的唯一 ID。您的电脑中必须有两个网络适配器(LAN、WLAN?)。

看看这里,这描述了如何在 JAVA 中获取唯一的系统标识符: 如何在 Java 中获取唯一的计算机标识符(如磁盘 ID 或主板 ID)

和.NET: http ://sowkot.blogspot.com/2008/08/generating-unique-keyfinger-print-for.html

迈克尔

于 2010-03-11T21:54:05.667 回答
4

(在我回答这个问题时,已经回答了 MAC 地址到底是什么,所以我不再重复,所以我只是回答了一个未回答的问题,否决票没有意义)

如果我想获得这台 PC 的唯一 ID,如何通过 Java 调用获得它

您不应该将唯一标识符绑定到硬件,而是绑定到最终用户。硬件可以改变,最终用户不能。因此,请最终用户填写一些注册表单(或提供加密狗,如 Pascal 所回答)。

于 2010-03-11T21:54:08.780 回答
4

MAC 地址是标识网卡接口的数字。您不能使用它以可靠的方式识别特定机器(用户可以更改他的 NIC,高级用户甚至可以动态更改 MAC 地址)。

也许您可以使用软件保护加密狗(看起来有Java 解决方案)。但请注意,即使这个解决方案也不能解决整个受信任的客户端问题。

于 2010-03-11T22:00:51.470 回答
2

来自 Google :: 媒体访问控制地址(MAC 地址)是分配给大多数网络适配器或网络接口的唯一标识符。

ID 用于网络接口。它们也不是一成不变的,因此并不总是独一无二的。

查看 java.net.NetworkInterface 和 java.net.InetAddress 获取 MAC 信息的方法。

于 2010-03-11T21:50:14.723 回答
2

MAC 是媒体访问控制标识,前两个字节代表国家,后四个字节代表制造商。不幸的是,由于现代大量生产的 NIC 的出现,没有两个适配器是相同的,MAC 可以很容易地动态更改。过去,网卡由 DIP 开关(双列直插针)组成,可让您更改网卡的设置,例如 IRQ、跳线地址等...

它们与处理器内核无关,这是一个单独的硬件。

没有可移植的方式来获取 MAC 地址,理论上您可以使用ifconfig*nix/Linux 变体的命令。对于 Windows 环境,您可以使用该ipconfig命令,使用任何一种,您都可以搜索相关的适配器......正如 Linux 下的这个示例所示......我的网络适配器被称为“eth0”......

ifconfig eth0 | grep HWaddr | 剪切-d\t -f4

会返回:

  HWaddr 00:02:03:04:05:06
于 2010-03-11T22:03:37.930 回答