2016-06-10 78 views
0

我正在嘗試開發一個開源網絡監視應用程序 應用程序掃描網絡以查找所有連接的設備。它顯示給定範圍內的所有IP,但連接的設備將顯示帶有複選框(JCheckBox)。我使用address.getHostName()和address.getHostAddress() - 類中的方法InetAddress- 將有關每個設備的信息(如名稱或IP地址)列入JTable中的連接設備現在我試圖獲取物理地址(MAC )。我試過這段代碼,但應用程序只顯示本地設備;沒有出現給定IP範圍內的設備(連接或斷開連接)。如何獲取使用java的網絡設備的MAC地址

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

複製https://stackoverflow.com/questions/1238963/query-arp-cache-to-get-mac-id(以及其他許多人)。 – Pixel

回答

1

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

對適當的question的答案可能對您有所幫助。 有定義有幾種方法:

  • ARP -a查找(UNIX特定的方式)
  • SNMP請求
  • 發送自己的ARP請求報文

反正你可以得到MAC地址只屬於您本地網絡中的設備。

相關問題