在Java 7中获取正确的mac地址

时间:2012-09-03 14:18:24

标签: java networking mac-address

尝试使用getHardwareAddress()方法获取我的网卡的mac地址,但是根据NetworkInterface.getNetworkInterfaces()我有20多个网络接口。通过检查其他属性,我将其缩小到一个,但这是否适用于所有(或至少大多数情况)和操作系统,只在WIndows 7 PC上试用过。

如果一台计算机有两块网卡,我可以找出实际用于当前互联网连接的网卡吗?

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

1 个答案:

答案 0 :(得分:0)

如果您有InetAddress,则可以使用NetworkInterface.getByInetAddress()获取当前的NetworkInterface。