我有一台双核 PC,它有两个 MAC 地址:00-1D.... & 00-21....... 这些 ID 是两个核的吗?如果我想获得这台 PC 的唯一 ID,如何通过 Java 调用获得它?也许Java中有类似“System.getId()”的东西?
坦率
我有一台双核 PC,它有两个 MAC 地址:00-1D.... & 00-21....... 这些 ID 是两个核的吗?如果我想获得这台 PC 的唯一 ID,如何通过 Java 调用获得它?也许Java中有类似“System.getId()”的东西?
坦率
MAC 代表媒体访问控制。MAC 地址通常代表您的网络适配器的唯一 ID。您的电脑中必须有两个网络适配器(LAN、WLAN?)。
看看这里,这描述了如何在 JAVA 中获取唯一的系统标识符: 如何在 Java 中获取唯一的计算机标识符(如磁盘 ID 或主板 ID)
和.NET: http ://sowkot.blogspot.com/2008/08/generating-unique-keyfinger-print-for.html
迈克尔
(在我回答这个问题时,已经回答了 MAC 地址到底是什么,所以我不再重复,所以我只是回答了一个未回答的问题,否决票没有意义)
如果我想获得这台 PC 的唯一 ID,如何通过 Java 调用获得它
您不应该将唯一标识符绑定到硬件,而是绑定到最终用户。硬件可以改变,最终用户不能。因此,请最终用户填写一些注册表单(或提供加密狗,如 Pascal 所回答)。
来自 Google :: 媒体访问控制地址(MAC 地址)是分配给大多数网络适配器或网络接口的唯一标识符。
ID 用于网络接口。它们也不是一成不变的,因此并不总是独一无二的。
查看 java.net.NetworkInterface 和 java.net.InetAddress 获取 MAC 信息的方法。
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