2016-04-07 5 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の詳細にアクセスしたいと思います。

+0

Javaコードはサーバーで実行されるため、サーバーのMACアドレスを取得します。あなたはクライアントの情報を得るために要求オブジェクトに取り組む必要があります – SpringLearner

答えて

0

MACアドレスは、TCP/IP(レイヤ3以上の)トラフィックでは送信されません。 MACアドレスはレイヤ2に属し、単一のLANセグメント内でのみ意味があります。

クライアントとサーバーが異なるLANセグメントにある一般的なケースでは、サーバーでクライアントのMACアドレスを取得する方法がありません。クライアントとサーバーが同じLAN上にある場合は、ローカルのARPテーブルを照会することでMACを取得できる可能性があります。