getHardwareAddress() メソッドを使用してネットワーク カードの MAC アドレスを取得しようとしましたが、NetworkInterface.getNetworkInterfaces() によると、20 を超えるネットワーク インターフェイスがあります。他の属性をチェックして 1 つに絞り込みましたが、これはすべての (または少なくともほとんどの状況) およびオペレーティング システムで動作し、Windows 7 PC でのみ試しました。
また、コンピュータに 2 枚のネットワーク カードがある場合、どちらが現在のインターネット接続に実際に使用されているかを調べることはできますか?
Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
while(e.hasMoreElements())
{
NetworkInterface ni = e.nextElement();
if(ni!=null && ni.getHardwareAddress()!=null &&ni.getInetAddresses().hasMoreElements() && ni.supportsMulticast())
{
String macAddress = Hex.encodeHexString(ni.getHardwareAddress());
System.out.println("MACADDRESSIS"+macAddress);
}
}