在java中如何获取ip地址

在java中如何获取ip地址

作者:Rhett Bai发布时间:2026-02-13阅读时长:0 分钟阅读次数:4

用户关注问题

Q
如何在Java程序中获取本机的IP地址?

我想在Java代码里获取当前运行机器的IP地址,该怎么实现呢?

A

使用InetAddress类获取本机IP地址

可以通过Java的InetAddress类来获取本机IP地址。具体方法是调用InetAddress.getLocalHost(),然后使用getHostAddress()方法获取IP地址字符串。例如:

InetAddress ip = InetAddress.getLocalHost();
String ipAddress = ip.getHostAddress();
System.out.println("本机IP地址:" + ipAddress);
Q
Java怎么获取所有网络接口的IP地址?

想要拿到电脑上所有网络接口对应的IP列表,有什么方法吗?

A

通过NetworkInterface和InetAddress遍历所有网络接口IP

可以使用Java中的NetworkInterface类结合InetAddress来遍历所有网络接口及其对应的IP地址。例如:

Enumeration<NetworkInterface> nics = NetworkInterface.getNetworkInterfaces();
while (nics.hasMoreElements()) {
  NetworkInterface nic = nics.nextElement();
  Enumeration<InetAddress> addresses = nic.getInetAddresses();
  while (addresses.hasMoreElements()) {
    InetAddress addr = addresses.nextElement();
    System.out.println(nic.getName() + " IP: " + addr.getHostAddress());
  }
}
Q
Java中如何获取IPv4地址而不是IPv6?

获取本机IP时,结果是IPv6格式的地址,有没有办法确保获取IPv4地址?

A

过滤InetAddress类型,选择IPv4地址

通过判断InetAddress实例是不是IPv4地址可实现过滤。具体是判断InetAddress是否是Inet4Address的实例。例如,在遍历网络接口的IP时,加入条件检查:

if (addr instanceof Inet4Address) {
  System.out.println("IPv4地址: " + addr.getHostAddress());
}