diff --git a/CHANGELOG.md b/CHANGELOG.md index bf18b81e6..19587e1ff 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------------------------------------- -# 5.8.11.M1 (2022-11-29) +# 5.8.11.M1 (2022-12-05) ### 🐣新特性 * 【core 】 CharUtil.isBlankChar增加\u180e(pr#2738@Github) @@ -18,6 +18,7 @@ * 【core 】 修复HexUtil.isHexNumber()判断逻辑超出long的精度问题(issue#I62H7K@Gitee) * 【core 】 修复BiMap中未重写computeIfAbsent和putIfAbsent导致双向查找出问题(issue#I62X8O@Gitee) * 【json 】 修复JSON解析栈溢出部分问题(issue#2746@Github) +* 【json 】 修复getMultistageReverseProxyIp未去除空格问题(issue#I64P9J@Gitee) ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java b/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java index 43dedc995..63c682442 100755 --- a/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java @@ -751,9 +751,9 @@ public class NetUtil { */ public static String getMultistageReverseProxyIp(String ip) { // 多级反向代理检测 - if (ip != null && ip.indexOf(",") > 0) { - final String[] ips = ip.trim().split(","); - for (String subIp : ips) { + if (ip != null && StrUtil.indexOf(ip, ',') > 0) { + final List ips = StrUtil.splitTrim(ip, ','); + for (final String subIp : ips) { if (false == isUnknown(subIp)) { ip = subIp; break; diff --git a/hutool-core/src/test/java/cn/hutool/core/net/NetUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/net/NetUtilTest.java index 0bed82723..8f9676720 100755 --- a/hutool-core/src/test/java/cn/hutool/core/net/NetUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/net/NetUtilTest.java @@ -112,4 +112,11 @@ public class NetUtilTest { Assert.assertFalse(NetUtil.isInRange("114.114.114.114","192.168.3.4/32")); } + @Test + public void issueI64P9JTest() { + // 获取结果应该去掉空格 + final String ips = "unknown, 12.34.56.78, 23.45.67.89"; + final String ip = NetUtil.getMultistageReverseProxyIp(ips); + Assert.assertEquals("12.34.56.78", ip); + } }