簡體   English   中英

如何使用Java獲取網絡設備的MAC地址

[英]How to get MAC Address of a network device using java

我正在嘗試開發一個開源網絡監視應用程序。該應用程序掃描網絡以查找所有連接的設備。 它顯示了給定范圍內的所有IP,但連接的設備將顯示帶有復選框(JCheckBox)。 我使用address.getHostName()和address.getHostAddress()在JTable中列出了與每個設備有關的信息,例如名稱或IP地址-類InetAddress中的方法-現在,我嘗試獲取物理地址(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();

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

回答適當的問題可能會對您有所幫助。 那里定義了幾種方法:

  • arp -a查找(特定於UNIX的方式)
  • SNMP請求
  • 發送您自己的ARP請求數據包

無論如何,您可以獲得僅屬於本地網絡內設備的MAC地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM