我有一台双核PC,它有两个MAC地址:00-1D ....& 00-21 ..... 这两个核心的ID是? 如果我想获得这台PC的唯一ID,如何通过Java调用获取它?也许Java中存在类似“System.getId()”的东西?
谢
答案 0 :(得分:4)
MAC代表媒体访问控制。 MAC地址通常表示网络适配器的唯一ID。您的电脑上必须有两个网络适配器(LAN,WLAN?)。
看看这里介绍如何在JAVA中获取唯一的系统标识符: How to get a unique computer identifier in Java (like disk id or motherboard id)
和.NET: http://sowkot.blogspot.com/2008/08/generating-unique-keyfinger-print-for.html
迈克尔
答案 1 :(得分:4)
(当时我回答这个问题,已经回答了MAC地址到底是什么,所以我不会重复它,所以我只回答了一个未回答的问题,downvote毫无意义)
如果我想获取此PC的唯一ID,如何使用Java调用
您不应将唯一标识符绑定到硬件,而应绑定到最终用户。硬件可以更改,最终用户不能。因此,请求最终用户填写一些注册表(或提供加密狗,如Pascal所回答)。
答案 2 :(得分:4)
MAC地址是标识网卡接口的编号。您无法使用它以可靠的方式识别特定计算机(用户可以更改其NIC,高级用户甚至可以动态更改MAC地址)。
也许您可以使用软件保护dongle(看起来有Java solutions)。但请注意,即使这个解决方案也无法解决整个可信客户端问题。
答案 3 :(得分:2)
来自Google ::媒体访问控制地址(MAC地址)是分配给大多数网络适配器或网络接口的唯一标识符。
ID用于网络接口。它们也不是一成不变的,因此并不总是独一无二的。
查看java.net.NetworkInterface和java.net.InetAddress以获取MAC信息的方法。
答案 4 :(得分:2)
MAC是媒体访问控制标识,前两个字节代表国家,4个字节代表制造商。不幸的是,没有两个适配器是相同的,由于现代大规模生产NIC的出现,MAC可以很容易地动态更改。在过去,NIC由DIP开关(双列直插式引脚)组成,它允许您更改NIC的设置,如IRQ,跳线地址等......
它们与处理器内核无关,这是一个单独的硬件。
没有可移植的获取MAC地址的方法,理论上你可以使用ifconfig
命令来实现* nix / Linux变种。对于Windows环境,您可以使用ipconfig
命令,使用其中任何一个,您可以搜索相关的相关适配器...因为Linux下的示例将显示...我的网络适配器被称为'eth0'..
ifconfig eth0 | grep HWaddr | cut -d\t -f4
将返回:
HWaddr 00:02:03:04:05:06