import javax.servlet.http.HttpServletRequest;
/**
* @Descripation:
* @Author: zqc
* @Date: 2020/4/10 13:45
* @since 1.0
*/
public class ClientIpUtil {
private static final String[] HEADERS_TO_TRY = {
"X-Forwarded-For",
"Proxy-Client-IP",
"WL-Proxy-Client-IP",
"HTTP_X_FORWARDED_FOR",
"HTTP_X_FORWARDED",
"HTTP_X_CLUSTER_CLIENT_IP",
"HTTP_CLIENT_IP",
"HTTP_FORWARDED_FOR",
"HTTP_FORWARDED",
"HTTP_VIA",
"REMOTE_ADDR",
"X-Real-IP"
};
/*
* @Author: zqc
* @Description: 获取客户端ip地址(可以穿透代理)
* @Date: 13:47 2020/4/10
* @Param [request]
* @return java.lang.String
**/
public static String getClientIpAddress(HttpServletRequest request) {
for (String header : HEADERS_TO_TRY) {
String ip = request.getHeader(header);
if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
return ip;
}
}
return request.getRemoteAddr();
}
}
获取客户端ip地址(可以穿透代理)
于 2020-04-29 09:47:40 首次发布