【发布时间】:2016-06-10 18:37:59
【问题描述】:
我正在尝试开发一个开源网络监控应用程序 该应用程序扫描网络以查找所有连接的设备。它显示给定范围内的所有 IP,但连接的设备将显示带有复选框 (JCheckBox)。我使用 address.getHostName() 和 address.getHostAddress() -InetAddress 类中的方法 - 在 JTable 中列出连接的设备以及有关每个设备的信息,例如名称或 IP 地址 现在我正在尝试获取物理地址(MAC)。我试过这段代码,但应用程序只显示本地设备;给定 IP 范围内的设备(已连接或已断开连接)未出现。
byte[] mac = NetworkInterface.getByInetAddress(address).getHardwareAddress();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++) {
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
String MAC = sb.toString();
【问题讨论】:
-
stackoverflow.com/questions/1238963/…(和许多其他人)的副本。
标签: java networking network-programming inetaddress