1

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);
   }
}
4

1 に答える 1

0

InetAddress がある場合は、 を使用して現在の NetworkInterface を取得できますNetworkInterface.getByInetAddress()

于 2012-09-03T14:24:46.163 に答える