获取已连接网络设备的唯一ID

时间:2011-11-30 14:28:25

标签: java sockets networking mac-address

我连接到WLAN,同时连接了一个特殊的硬件设备。我通过套接字与该设备通信,因为我知道它的IP。

是否有人通过ID识别网络中的硬件设备?我在Java中发现无法获取连接设备的MAC地址。还有其他选择吗?

谢谢, 最好的问候

2 个答案:

答案 0 :(得分:2)

Mac地址应该是唯一的。也许你可以从ARP表中获取所需的信息。 命令“arp -a”适用于Windows和Linux。

但是有一个问题:

  1. 这不是便携式的方式
  2. ARP表变化很大
  3. 如果设备位于路由器后面,则无效。

答案 1 :(得分:2)

在Java中,您可以调用NetworkInterface.getHardwareAddress()来返回硬件MAC地址

Enumeration<NetworkInterface> enumNicList = NetworkInterface.getNetworkInterfaces();
while(enumNicList.hasMoreElements())
{
    NetworkInterface oNic = enumNicList.nextElement();
    byte[] baMacAddress = oNic.getHardwareAddress();
    String sMacAddress = new BigInteger(1, baMacAddress).toString(16);
    System.out.println(sMacAddress);
}