我正在阅读“对于您的 Web 应用程序的每个请求,也会发送客户端的 IP。所以您需要做的就是过滤请求并存储 IP。”
如果是这样,我该怎么做?我的意思是什么方法可以告诉我请求中发送的 IP?
我正在阅读“对于您的 Web 应用程序的每个请求,也会发送客户端的 IP。所以您需要做的就是过滤请求并存储 IP。”
如果是这样,我该怎么做?我的意思是什么方法可以告诉我请求中发送的 IP?
创建一个实现的过滤器类,并使用以下方法javax.servlet.Filter
获取 IP :ServletRequest
getRemoteAddr()
public final class ExtractIpFilter implements Filter {
private FilterConfig filterConfig = null;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void destroy() {
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
String ip = request.getRemoteAddr();
// do something with the IP
}
}
如果您的客户端在代理后面,请尝试使用request.getHeader("x-forwarded-for")
,尽管这可能会或可能不会工作,具体取决于代理的配置。