重複の可能性:
ARPキャッシュをクエリしてMACIDを取得する
ホームネットワークに接続されているすべてのリモートマシンのMACアドレスを取得する必要があります。以下のコードを使用して自分のマシンのMACアドレスを読み取ることはできますが、ネットワーク上の他のマシンのMACアドレスを取得する方法がわかりません。またはそれは可能かどうか。
import java.net.InetAddress;
import java.net.NetworkInterface;
class Test {
public static void main(String[] args) throws Exception {
InetAddress address = InetAddress.getLocalHost();
NetworkInterface ni = NetworkInterface.getByInetAddress(address);
byte[] mac = ni.getHardwareAddress();
for (int i = 0; i < mac.length; i++) {
System.out.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "");
}
}
}
出力(MyComputerの6バイトMACアドレス)
30-60-77-12-cd-99