推荐答案
要获取当前主机的IP地址,可以使用Java的InetAddress类。InetAddress类提供了一些静态方法来获取主机的IP地址和主机名。下面是一个简单的示例代码来获取当前主机的IP地址:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Main {
public static void main(String[] args) {
try {
InetAddress localhost = InetAddress.getLocalHost();
String ip = localhost.getHostAddress();
System.out.println("IP Address: " + ip);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们使用InetAddress.getLocalHost()方法获取本地主机的InetAddress对象。然后,我们可以使用getHostAddress()方法来获取主机的IP地址。最后,我们将IP地址打印出来。
请注意,getLocalHost()方法可能会抛出UnknownHostException异常,如果无法确定本地主机的IP地址。
运行上述代码,你将获得类似以下输出的结果:
IP Address: 192.168.0.123
这是当前主机的IP地址。
其他答案
-
获取当前主机的IP地址有很多种方法。一种常用的方法是使用NetworkInterface类遍历所有网络接口,并检查每个接口的IP地址。下面是一个示例代码来获取当前主机的IP地址列表:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class Main {
public static void main(String[] args) {
try {
Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
Enumeration addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
if (!address.isLoopbackAddress() && address.isSiteLocalAddress()) {
System.out.println("IP Address: " + address.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们通过调用NetworkInterface.getNetworkInterfaces()方法来获取所有网络接口的枚举。然后,我们遍历每个网络接口,并调用getInetAddresses()方法来获取该接口的所有IP地址。我们检查每个地址,排除回环地址和非本地链接地址,然后将其打印出来。
运行上述代码,你将获得类似以下输出的结果:
IP Address: 192.168.0.123
这是当前主机的IP地址。
-
获取当前主机的IP地址可以通过使用Java的NetworkInterface和InetAddress类的组合来实现。下面是一个示例代码来获取当前主机的IP地址:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class Main {
public static void main(String[] args) {
try {
Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
Enumeration inetAddresses = networkInterface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress() && inetAddress.isSiteLocalAddress()) {
System.out.println("IP Address: " + inetAddress.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们首先获取网络接口的枚举对象,通过调用NetworkInterface.getNetworkInterfaces()方法。然后,我们遍历每个网络接口,并获取每个接口的IP地址枚举对象,通过调用getInetAddresses()方法。最后,我们过滤掉回环地址和链路本地地址,只保留站点本地地址,然后打印出这些地址。
运行上述代码,你将获得类似以下输出的结果:
IP Address: 192.168.0.123
这是当前主机的IP地址。
以上是三种获取当前主机IP地址的方法。你可以根据自己的需求选择适合的方法来获得当前主机的IP地址。