TCP/IPv4 ソケット経由でアプリに接続されているマシンの MAC アドレスを取得する簡単な方法はありますか?
または、より一般的な用語で:
IP アドレスを持っている場合、IPv4 で対応する MAC アドレスを取得する最良の方法は何ですか?
TCP/IPv4 ソケット経由でアプリに接続されているマシンの MAC アドレスを取得する簡単な方法はありますか?
または、より一般的な用語で:
IP アドレスを持っている場合、IPv4 で対応する MAC アドレスを取得する最良の方法は何ですか?
MAC アドレスは、ネクスト ホップにのみ使用されます。これは基本的に、最初のホップの後、クライアントの元の MAC アドレスが表示されないことを意味します。一般的な意味では、クライアントと同じ物理セグメントにいない場合、IP を取得して MAC を取得する方法はありません (またはその逆)。
他のネットワーク上に何か (またはクライアント自体) がなければ、それはできません。
MAC アドレスは、ネットワーキングの OSI モデルの第 2 層であるデータリンク層で使用されます。MAC はイーサネットに固有です。インターネットにアクセスするときは、IP アドレスが使用されます。インターネットに接続されているものすべてが下位層でイーサネットを使用しているわけではありません。
使用できるプロトコルは IP 以外にもあります。
基本的に、コンピュータは物理ネットワーク セグメント上にあるものしか認識していません。それ以外の理由で外に出なければならない場合、そこに到達するためのゲートウェイの MAC しか知りません。
その情報を保持するのは ARP テーブルの仕事です。一番いいのは、そこから読んでみることです。
Query ARP cache への回答を読んで MAC ID を取得することを検討してください。質問者はJavaを使用していましたが、それ以外はあなたと同じ質問です。