package com.liujx.iptest.util;
import javax.servlet.http.HttpServletRequest;
public class IpUtil {
private final static String[] HEADER_TRY = {"x-real-ip","x-forwarded-for","proxy-client-ip","wl-proxy-client-ip"};
public static String getIp(HttpServletRequest request) {
for (String header : HEADER_TRY) {
String ip = request.getHeader(header);
if (ip!=null && ip.length() !=0 && !"unknown".equalsIgnoreCase(ip)) {
return ip;
}
}
return request.getRemoteAddr();
}
}
package com.liujx.iptest.common;
import com.liujx.iptest.util.IpUtil;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.GenericFilterBean;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class IpFIlter extends GenericFilterBean {
private static String ip;
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String userIp = IpUtil.getIp(request);
this.ip = userIp;
filterChain.doFilter(servletRequest, servletResponse);
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
}