我有一个双核PC,它有两个MAC地址:00-1D .... & 00-21 ..... 这两个核心的ID是? 如果我想获得这台PC的唯一ID,如何通过Java调用获得它?也许有像Java的东西像“System.getId()”?什么是MAC地址?什么是PC的唯一ID?
弗兰克
我有一个双核PC,它有两个MAC地址:00-1D .... & 00-21 ..... 这两个核心的ID是? 如果我想获得这台PC的唯一ID,如何通过Java调用获得它?也许有像Java的东西像“System.getId()”?什么是MAC地址?什么是PC的唯一ID?
弗兰克
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
迈克尔
从谷歌::媒体访问控制地址(MAC地址)被分配给最网络适配器或网络接口的唯一标识符。
该ID用于网络接口。它们也不是一成不变的,因此不总是独一无二的。
查看java.net.NetworkInterface和java.net.InetAddress获取MAC信息的方法。
(在我回答这个时候,它已经回答了什么MAC地址是什么,所以我不打算重复它,所以我只是回答了一个没有答案的问题,downvote没有意义)
如果我想获得一个唯一的ID保持这台PC,如何使用Java调用
你不应该绑定唯一标识符的硬件得到它,但到最终用户。硬件可以改变,最终用户不可以。因此,请最终用户填写一些注册表格(或者提供一个加密狗,如Pascal回答)。
MAC地址是一个标识网卡接口的号码。您不能以可靠的方式使用它来识别特定的计算机(用户可以更改他的网卡,高级用户甚至可以动态更改MAC地址)。
也许你可以使用软件保护dongle(看起来像有Java solutions)。但请注意,即使此解决方案也不能解决整个可信客户端问题。
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
http://tinyurl.com/ybjb28v – Luiscencio 2010-03-11 21:51:00
如果什么人卖NIC别人和/或升级现有网卡? – BalusC 2010-03-11 21:52:34
Mac地址是1 Infinite Loop,Cupertino,CA 95014,USA。 ;) – Powerlord 2010-03-11 21:57:56