java如何获取本机ip地址

java如何获取本机ip地址

作者:William Gu发布时间:2026-02-25阅读时长:0 分钟阅读次数:11

用户关注问题

Q
如何在Java程序中获取当前设备的IP地址?

我想在Java代码里获取运行程序的计算机的IP地址,该怎么实现?

A

使用Java的InetAddress类获取本机IP地址

Java提供了InetAddress类来表示一个IP地址。通过调用InetAddress.getLocalHost()方法可以获取本机的网络地址对象,再通过getHostAddress()方法可以得到字符串形式的IP地址。示例代码如下:

InetAddress localHost = InetAddress.getLocalHost();
String ipAddress = localHost.getHostAddress();
System.out.println("本机IP地址:" + ipAddress);
Q
Java获取IP地址时可能遇到哪些异常?

调用Java方法获取本机IP地址时,代码抛出异常怎么办?

A

处理UnknownHostException异常

在使用InetAddress.getLocalHost()时,可能会发生UnknownHostException异常。这通常是由于主机名无法解析所致。应当在代码中使用try-catch块捕获此异常,以保证程序健壮性。示例:

try {
    InetAddress localHost = InetAddress.getLocalHost();
    String ip = localHost.getHostAddress();
} catch (UnknownHostException e) {
    e.printStackTrace();
}
Q
如何用Java获取多个网络接口的IP地址?

如果电脑有多个网络接口,比如有线和无线,我想获取所有接口的IP地址,Java该怎么做?

A

使用NetworkInterface类遍历所有网络接口

Java中的NetworkInterface类允许遍历所有网络接口并获取对应的IP地址。首先调用NetworkInterface.getNetworkInterfaces()获取接口枚举,然后遍历每个接口的InetAddress列表。这样可以获取所有IPv4和IPv6地址。示例代码如下:

Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
while (nets.hasMoreElements()) {
    NetworkInterface netint = nets.nextElement();
    Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
    while (inetAddresses.hasMoreElements()) {
        InetAddress inetAddress = inetAddresses.nextElement();
        System.out.printf("接口: %s 地址: %s%n", netint.getName(), inetAddress.getHostAddress());
    }
}