[英]Get an unique id for a connected network device
我连接到 WLAN,其中还连接了一个特殊的硬件设备。 我通过套接字与该设备通信,因为我知道它的 IP。
是否可以通过 id 来识别网络中的硬件设备? 我发现在 Java 中无法获得连接设备的 MAC 地址。 还有其他选择吗?
谢谢,最好的问候
Mac 地址应该是唯一的。 也许您可以从 ARP 表中获取所需的信息。 命令“arp -a”适用于 Windows 和 Linux。
但是有一个问题:
在 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);
}
如果您无法控制设备的响应,并且设备不包含任何识别 API 调用等,那么只需使用 IP 地址并通过路由器将该 IP 静态分配给该设备。 然后,您可以创建自己的 IP <-> 设备列表表,甚至可以从路由器上删除 IP 表。
想想看,您可能会以相同的方式获取 MAC 地址 - 从路由器的配置屏幕上刮下 DHCP 表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.