我正在尝试开发一个开源网络监控应用程序 应用程序扫描网络以查找所有连接的设备。它显示给定范围内的所有IP,但连接的设备将显示复选框(JCheckBox)。我在JTable中列出连接的设备,其中包含有关每个设备的信息,例如名称或IP地址,使用地址InetAddress-中的address.getHostName()和address.getHostAddress()-Methods- 现在我想获得物理地址(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();
答案 0 :(得分:1)
要请求MAC(硬件)地址,您需要进行ARP查找。
对适当question的回答可能会对您有所帮助。 有几种方法可以定义:
无论如何,您可以获得仅属于本地网络中设备的MAC地址。