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; } + + }