From e188696f9d141e8bfcaa150a92d2926b590e3acd Mon Sep 17 00:00:00 2001 From: wangqing Date: Thu, 11 Mar 2021 17:37:36 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E8=8E=B7=E5=8F=96ip=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E5=AD=98=E5=9C=A8=E5=A4=9A=E4=B8=AA=E6=97=B6=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/tduck/cloud/api/util/HttpUtils.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/util/HttpUtils.java b/tduck-api/src/main/java/com/tduck/cloud/api/util/HttpUtils.java index b4a5c45..fc1cca6 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/util/HttpUtils.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/util/HttpUtils.java @@ -1,5 +1,9 @@ package com.tduck.cloud.api.util; +import cn.hutool.core.lang.PatternPool; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.CharUtil; import cn.hutool.core.util.StrUtil; import com.tduck.cloud.api.web.wrapper.BodyReaderHttpServletRequestWrapper; import com.tduck.cloud.common.util.JsonUtils; @@ -10,6 +14,7 @@ import org.springframework.http.MediaType; import javax.servlet.http.HttpServletRequest; import java.util.*; +import java.util.regex.Pattern; /** * http 工具类 获取请求中的参数 @@ -18,6 +23,7 @@ import java.util.*; * @date 14:23 2019/5/29 */ public class HttpUtils { + /** * 将URL的参数和body参数合并 * @@ -113,7 +119,15 @@ public class HttpUtils { if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } - + //"***.***.***.***".length() = 15 + if (StrUtil.isNotBlank(ip) && ip.length() > 15) { + if (ip.indexOf(CharUtil.COMMA) > 0) { + ip = ip.substring(0, ip.indexOf(",")); + } + } + //处理获取多个ip地址情况 nginx多层代理会出现多个ip 第一个为真实ip地址 return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip; } + + }