手机版 收藏 导航

如何在 hutool 中判断 IP 地址是否为内网 IP_hutool 获取公网 IP 地址的方法

原创   www.link114.cn   2024-04-16 21:37:16

如何在 hutool 中判断 IP 地址是否为内网 IP_hutool 获取公网 IP 地址的方法

在 Hutool 中,可以使用 InetUtil.isInnerIP(String ip) 方法来判断 IP 地址是否为内网 IP。该方法会根据 IP 地址的段位来判断是否为内网 IP。IP 地址属于以下网段,则返回 true:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

要获取公网 IP 地址,可以使用 InetUtil.getPublicIp() 方法。该方法会通过访问第三方 IP 查询服务来获取当前主机的公网 IP 地址。无法访问第三方服务,则返回 null

为提高可靠性,我们可以使用多个 IP 查询服务,并设置超时时间。例如:

String publicIp = InetUtil.getPublicIp(
    "https://ip.cn/api/index?format=json",
    "https://www.ipip.net/ip.html",
    2000
);

以上代码会依次尝试访问两个 IP 查询服务,在 2 秒内无法获取公网 IP 则返回 null