我的代码是:
public void filter(ContainerRequestContext request) throws IOException
{
// can I get Ip from request?????
}
如何从request
获取IP地址?
答案 0 :(得分:11)
根据此JIRA票据,根据此discussion,他们添加了将HttpServletRequest
注入您的过滤器的支持,上述JIRA的代码片段如下所示:
public class MyRequestFilter implements ContainerRequestFilter {
@Context
private HttpServletRequest servletRequest;
然后,您可以使用HttpServletRequest
API获取远程IP,请参阅完整的Javadoc here,摘录:
的getRemoteAddr
java.lang.String getRemoteAddr()
返回发送请求的客户端或最后一个代理的Internet协议(IP)地址。对于HTTP servlet,与CGI变量REMOTE_ADDR的值相同。
返回:
包含发送请求的客户端的IP地址的字符串