2011-11-08 15 views
4

PCからMACアドレスを取得する必要があります。これまでに書いたコードはここにあります(これはコードのほんの一部です)。リモートPCのMACアドレスを取得しますか?

public byte[] getMac(L2PcInstance player) 
{ 
    try 
    { 
     NetworkInterface ni = NetworkInterface.getByInetAddress(player.getClient().getConnectionAddress()); 
     if (ni != null) 
     { 
      byte[] mac = ni.getHardwareAddress(); 
      if (mac != null) 
      { 
       return mac; 
      } 
     } 
    } 
    catch (SocketException e) 
    { 
     _log.log(Level.SEVERE, "No MAC address.", e); 
    } 
    return null; 
} 

このコードは、実行しているPCのMACアドレスを検出しますが、リモートMACアドレスを取得する必要があります。

+0

:)。私は私の質問を編集しました。 thnx – JoinOG

+0

@EJPのように遠隔で行うことはできません。クライアントはこの情報を検出し、ソケット(または別の手段を介して)をサーバーに送信できますが、サーバーからリモートでJavaでこれを行う技術的な方法はありません。 Btwは、リモートコンピュータが私が信じているのと同じ物理的なローカルネットワーク上にない限り、この情報をカーネルが利用することさえできません。 – Gray

+0

どのようにリモートでPCを識別する方法ですか? – JoinOG

答えて

6

あなたはJavaでこれを行うことはできません。あなたが調査を行うと、MACアドレスはイーサネットレイヤーとそれに接続されたNIC以外のものにはあまり役に立ちません。

+0

こんにちは、thnxさんの回答です。私はすでに、サーバーがホストされているPCのmacを取得しています。だから私は今必要なのは、リモートPCからMacを取得することです。 – JoinOG

+0

@JoinOG MACは実際には同じ論理セグメントにのみ適用されます。たとえば、ルータ経由で別のマシン(P1 <-> ROUTER <-> P2)に接続した場合、ルータのMACだけでもローカルのNICにしてください... Web上のあるマシンから別のマシンに、通常は多くの異なる論理ネットワークセグメント(すべてがイーサネットではありません!)があります:) –

+0

は、リモートでpcを識別する方法はありますか? – JoinOG

関連する問題