diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ip/AddressUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ip/AddressUtils.java index 2878078f1..104734465 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ip/AddressUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ip/AddressUtils.java @@ -22,14 +22,21 @@ public class AddressUtils { public static String getRealAddressByIP(String ip) { // 处理空串并过滤HTML标签 ip = HtmlUtil.cleanHtmlTag(StringUtils.blankToDefault(ip,"")); + boolean isIPv6 = NetUtils.isIPv6(ip); // 判断是否为IPv4或IPv6,如果不是则返回未知地址 - if (!NetUtils.isIPv4(ip) && !NetUtils.isIPv6(ip)) { + if (!NetUtils.isIPv4(ip) && !isIPv6) { return UNKNOWN; } // 内网不查询 if (NetUtils.isInnerIPv6(ip) || NetUtils.isInnerIP(ip)) { return "内网IP"; } + // 不支持IPv6,不再进行没有必要的IP地址信息的解析,直接返回 + if (isIPv6) { + log.warn("ip2region不支持IPV6地址解析:{}", ip); + // 如有需要,可自行实现IPv6地址信息解析逻辑,并在这里返回 + return "未知"; + } return RegionUtils.getCityInfo(ip); }