2016-04-07 78 views
1

我想捕獲客戶端的mac地址,從java的IP細節。可能從java獲取客戶端mac地址?

我試過下面的程序,但它只顯示服務器的ip細節。

InetAddress ip; 
    try { 

     ip = InetAddress.getLocalHost(); 
     System.out.println("Current IP address : " + ip.getHostAddress()); 

     NetworkInterface network = NetworkInterface.getByInetAddress(ip); 

     byte[] mac = network.getHardwareAddress(); 

     System.out.print("Current MAC address : "); 

     StringBuilder sb = new StringBuilder(); 
     for (int i = 0; i < mac.length; i++) { 
      sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "")); 
     } 

我想訪問客戶端mac id details.Any幫助將不勝感激。

+0

java代碼在服務器中運行,所以你得到服務器的mac地址。您需要處理請求對象以獲取客戶端的信息 – SpringLearner

回答

0

MAC地址不與TCP/IP(第3層及以上)流量一起傳輸。 MAC地址屬於第2層,僅在單個LAN段內有意義。

在通常情況下,客戶端和服務器位於不同的局域網段上,無法在服務器上獲取客戶端的MAC地址。如果客戶端和服務器位於同一局域網上,那麼您可以通過查詢本地ARP表來檢索MAC,這可能需要提升特權。

相關問題