2010-03-11 37 views
3

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

弗兰克

+1

http://tinyurl.com/ybjb28v – Luiscencio 2010-03-11 21:51:00

+1

如果什么人卖NIC别人和/或升级现有网卡? – BalusC 2010-03-11 21:52:34

+8

Mac地址是1 Infinite Loop,Cupertino,CA 95014,USA。 ;) – Powerlord 2010-03-11 21:57:56

回答

2

从谷歌::媒体访问控制地址(MAC地址)被分配给最网络适配器或网络接口的唯一标识符。

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

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

4

(在我回答这个时候,它已经回答了什么MAC地址是什么,所以我不打算重复它,所以我只是回答了一个没有答案的问题,downvote没有意义)

如果我想获得一个唯一的ID保持这台PC,如何使用Java调用

你不应该绑定唯一标识符的硬件得到它,但到最终用户。硬件可以改变,最终用户不可以。因此,请最终用户填写一些注册表格(或者提供一个加密狗,如Pascal回答)。

+0

+1来抵消downvote – 2010-03-11 22:18:11

+0

@Pascal:谢谢。 – BalusC 2010-03-11 23:06:37

+0

填写表单不起作用,有人可能使用假信息填写表单,另有100人可以使用此发布的假信息访问该程序。 我想过使用用户名或机器名称,他们也不会工作,因为有人可以使用该用户名或重命名他的电脑到该机器名称来使用该应用程序。 – Frank 2010-03-12 20:24:27

4

MAC地址是一个标识网卡接口的号码。您不能以可靠的方式使用它来识别特定的计算机(用户可以更改他的网卡,高级用户甚至可以动态更改MAC地址)。

也许你可以使用软件保护dongle(看起来像有Java solutions)。但请注意,即使此解决方案也不能解决整个可信客户端问题。

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