getLocalHost() 显示错误的 IP 地址
getLocalHost() shows wrong IP address
我正在尝试执行以下代码。我是 Java 的新手,所以这是我第一次来 java.net。程序没有错误,但我得到的本地主机地址为 192.168.56.1 而我的 IP 是 192.168.2.10
import java.net.*;
class InetAddressDemo
{
public static void main(String[] args)
{
try
{
InetAddress address = InetAddress.getLocalHost();
System.out.println("\nLocalhost Address : " + address + "\n");
}
catch (Exception e)
{
System.out.println(e);
}
}
}
您应该枚举网络接口,因为您可能有多个接口。
getLocalHost()
returns只有你机器的环回地址。
Enumeration Interfaces = NetworkInterface.getNetworkInterfaces();
while(Interfaces.hasMoreElements())
{
NetworkInterface Interface = (NetworkInterface)Interfaces.nextElement();
Enumeration Addresses = Interface.getInetAddresses();
while(Addresses.hasMoreElements())
{
InetAddress Address = (InetAddress)Addresses.nextElement();
System.out.println(Address.getHostAddress());
}
}
一个简短的回答,要获得您在问题中提到的 IP 地址,您必须使用:
String address = InetAddress.getLocalHost().getHostAddress();
你可以在这里找到一个很好的解释:Getting the IP address of the current machine using Java
我正在尝试执行以下代码。我是 Java 的新手,所以这是我第一次来 java.net。程序没有错误,但我得到的本地主机地址为 192.168.56.1 而我的 IP 是 192.168.2.10
import java.net.*;
class InetAddressDemo
{
public static void main(String[] args)
{
try
{
InetAddress address = InetAddress.getLocalHost();
System.out.println("\nLocalhost Address : " + address + "\n");
}
catch (Exception e)
{
System.out.println(e);
}
}
}
您应该枚举网络接口,因为您可能有多个接口。
getLocalHost()
returns只有你机器的环回地址。
Enumeration Interfaces = NetworkInterface.getNetworkInterfaces();
while(Interfaces.hasMoreElements())
{
NetworkInterface Interface = (NetworkInterface)Interfaces.nextElement();
Enumeration Addresses = Interface.getInetAddresses();
while(Addresses.hasMoreElements())
{
InetAddress Address = (InetAddress)Addresses.nextElement();
System.out.println(Address.getHostAddress());
}
}
一个简短的回答,要获得您在问题中提到的 IP 地址,您必须使用:
String address = InetAddress.getLocalHost().getHostAddress();
你可以在这里找到一个很好的解释:Getting the IP address of the current machine using Java