我编写了以下代码来获取我正在使用的机器上eth0接口的IPv4地址。然而,该代码仅找到“fe80:x:x:x:xxx:xxxx:xxxx:xxxx”,由于我正在寻找IPv4地址,因此该地址不被返回。
这是代码。
这是代码。
interfaceName = "eth0";
NetworkInterface networkInterface = NetworkInterface.getByName(interfaceName);
Enumeration<InetAddress> inetAddress = networkInterface.getInetAddresses();
InetAddress currentAddress;
currentAddress = inetAddress.nextElement();
while(inetAddress.hasMoreElements())
{
System.out.println(currentAddress);
if(currentAddress instanceof Inet4Address && !currentAddress.isLoopbackAddress())
{
ip = currentAddress.toString();
break;
}
currentAddress = inetAddress.nextElement();
}
intetAddress.nextElement()
的第一个调用 - 即在 while 循环之前的那个调用,因为根据当前的编写方式,您总是会扔掉第一个元素! - jbowman