【问题标题】:How to get MAC Address of a network device using java如何使用java获取网络设备的MAC地址
【发布时间】: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();

【问题讨论】:

标签: java networking network-programming inetaddress


【解决方案1】:

要请求 MAC(硬件)地址,您需要进行 ARP 查找。

回答适当的question 可能会对您有所帮助。 那里定义了几种方法:

  • arp -a 查找(特定于 UNIX 的方式)
  • SNMP 请求
  • 发送自己的 ARP 请求包

无论如何,您都可以获得仅属于您本地网络中的设备的 MAC 地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    相关资源
    最近更新 更多