如何获取访问了经过端口映射的tomcat项目的用户IP
在局域网用tomcat部署了一个web项目,服务器地址为A,为隐藏服务器地址,做了端口映射为地址B,写了记录访问日志的Servlet,需要获取访问用户的IP地址。但是测试访问B地址获取到的就是B的IP,只有直接访问A,才能获取到用户IP。
获取IP地址方法用的网上的:
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
应该是路由器级别的,请问该如何设置
你再加一个条件为 "X-Real-IP"
但!!!!你没说你怎么做的端口映射,是路由器级别的还是nginx之类的?还是F5硬载类的?