java 如何获取ip

java 如何获取ip

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

用户关注问题

Q
如何用Java代码获取本机的IP地址?

我需要在Java程序中获取运行该程序的计算机的本地IP地址,应该如何实现?

A

Java获取本机IP地址的方法

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

InetAddress ip = InetAddress.getLocalHost();
String localIp = ip.getHostAddress();
System.out.println("本机IP地址:" + localIp);

这段代码能够返回本机的IPv4地址。

Q
Java中如何获取客户端的IP地址?

在Java Web应用开发中,我想获得访问者的IP地址,该怎么做?

A

使用HttpServletRequest获取客户端IP的方法

在Servlet等基于HTTP的Java应用中,可以通过HttpServletRequest对象的getRemoteAddr()方法获取客户端的IP地址。示例代码如下:

String clientIp = request.getRemoteAddr();
System.out.println("访问者IP地址:" + clientIp);

注意在有代理或负载均衡的环境中,还需检查"X-Forwarded-For"头以获取真实客户端IP。

Q
Java如何区分IPv4和IPv6地址?

获取到IP地址后,如果想判断这个IP是IPv4还是IPv6,应该怎么操作?

A

判断IP地址类型的Java方法

Java中InetAddress的子类Inet4Address和Inet6Address分别代表IPv4和IPv6地址。可以通过instanceof运算符判断:

InetAddress ip = InetAddress.getByName("您的IP");
if (ip instanceof Inet4Address) {
    System.out.println("这是IPv4地址");
} else if (ip instanceof Inet6Address) {
    System.out.println("这是IPv6地址");
}

这样可以准确区分IP版本。