如何获取访问了经过端口映射的tomcat项目的用户IP

发布于 2021-12-04 15:57:50 字数 750 浏览 834 评论 2

在局域网用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等你爱我 2021-12-05 13:12:43

应该是路由器级别的,请问该如何设置

旧城烟雨 2021-12-05 04:38:25

你再加一个条件为 "X-Real-IP"  

但!!!!你没说你怎么做的端口映射,是路由器级别的还是nginx之类的?还是F5硬载类的?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文