【问题标题】:Getting the correct macaddress in Java 7在 Java 7 中获取正确的 MAC 地址
【发布时间】:2012-09-03 14:18:23
【问题描述】:

尝试使用 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);
   }
}

【问题讨论】:

  • MAC地址可以这么轻松改,希望大家不要太依赖它来保证安全
  • 所有 MAC 地址都可能被使用。
  • @Peter Lawrey On Windows ipconfig 清楚地显示了正确的mac地址,所以我只是问如何以纯Java方式做到这一点
  • 在 Windows 上 ipconfig /all 向您显示所有 MAC 地址,在 Java 中它应该这样做。在我的 Windows 7 上,它显示相同的 MAC 地址。

标签: java networking mac-address


【解决方案1】:

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

【讨论】:

  • 我也不知道inet地址,但也许我可以得到当前的ipaddress,然后从中获取硬件地址?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多