|
@@ -3,9 +3,14 @@ package com.fdkankan.gateway.util;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.http.useragent.UserAgent;
|
|
import cn.hutool.http.useragent.UserAgent;
|
|
import cn.hutool.http.useragent.UserAgentUtil;
|
|
import cn.hutool.http.useragent.UserAgentUtil;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.http.HttpHeaders;
|
|
import org.springframework.http.HttpHeaders;
|
|
import org.springframework.http.server.reactive.ServerHttpRequest;
|
|
import org.springframework.http.server.reactive.ServerHttpRequest;
|
|
|
|
|
|
|
|
+import java.net.InetAddress;
|
|
|
|
+import java.net.UnknownHostException;
|
|
|
|
+
|
|
|
|
+@Slf4j
|
|
public class WebUtil {
|
|
public class WebUtil {
|
|
|
|
|
|
private final static String UNKNOWN = "unknown";
|
|
private final static String UNKNOWN = "unknown";
|
|
@@ -18,6 +23,7 @@ public class WebUtil {
|
|
public static String getIpAddress(ServerHttpRequest request) {
|
|
public static String getIpAddress(ServerHttpRequest request) {
|
|
HttpHeaders headers = request.getHeaders();
|
|
HttpHeaders headers = request.getHeaders();
|
|
String ip = headers.getFirst("X-Forwarded-For");
|
|
String ip = headers.getFirst("X-Forwarded-For");
|
|
|
|
+ log.info("X-Forwarded-For : {}", ip);
|
|
if(StrUtil.isNotBlank(ip) && UNKNOWN.equalsIgnoreCase(ip)){
|
|
if(StrUtil.isNotBlank(ip) && UNKNOWN.equalsIgnoreCase(ip)){
|
|
if(ip.indexOf(",") != -1){
|
|
if(ip.indexOf(",") != -1){
|
|
ip = ip.split(",")[0];
|
|
ip = ip.split(",")[0];
|
|
@@ -25,14 +31,19 @@ public class WebUtil {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ip = headers.getFirst("Proxy-Client-IP");
|
|
ip = headers.getFirst("Proxy-Client-IP");
|
|
|
|
+ log.info("Proxy-Client-IP : {}", ip);
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
ip = headers.getFirst("WL-Proxy-Client-IP");
|
|
ip = headers.getFirst("WL-Proxy-Client-IP");
|
|
|
|
+ log.info("WL-Proxy-Client-IP : {}", ip);
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
ip = headers.getFirst("HTTP-CLIENT-IP");
|
|
ip = headers.getFirst("HTTP-CLIENT-IP");
|
|
|
|
+ log.info("HTTP-CLIENT-IP : {}", ip);
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
ip = headers.getFirst("HTTP-X-FORWARDED-FOR");
|
|
ip = headers.getFirst("HTTP-X-FORWARDED-FOR");
|
|
|
|
+ log.info("HTTP-X-FORWARDED-FOR : {}", ip);
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
ip = headers.getFirst("X-Real-IP");
|
|
ip = headers.getFirst("X-Real-IP");
|
|
|
|
+ log.info("X-Real-IP : {}", ip);
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
if(StrUtil.isNotBlank(ip)) return ip;
|
|
ip = request.getRemoteAddress().getAddress().getHostAddress();
|
|
ip = request.getRemoteAddress().getAddress().getHostAddress();
|
|
return ip;
|
|
return ip;
|