gpt4 book ai didi

java - Apache Tomcat 是否阻止了客户端 IP 地址?

转载 作者:行者123 更新时间:2023-11-28 23:34:25 25 4
gpt4 key购买 nike

我已经在 IP 地址为 10.xx.xx.90 的机器上的 Tomcat 6.0 上部署了我的 Web 应用程序。然后我从具有 IP 地址 (10.xx.xx.56) 的 m/c 向这个应用程序发出一个 http 请求(从浏览器)。

我正在尝试使用以下代码在 servlet 过滤器中获取客户端 (10.xx.xx.56) 的 IP 地址。但是我没有在 header 信息和 request.getRemoteAddr() 返回中获取 remoteaddress 参数的任何值部署应用程序的机器的 IP 地址,即 10.xx.xx.90。两者之间没有负载均衡器或代理。

public void doFilter(ServletRequest request, ServletResponse response, FilterChain    chain) throws IOException,
ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
StringBuffer ipLog = new StringBuffer("FILTER_LOG").append(httpServletRequest.getRemoteAddr());
Enumeration<String> e = httpServletRequest.getHeaderNames();
if (e != null) {
while (e.hasMoreElements()) {
String header = e.nextElement();
ipLog.append(header).append(" - ").append(httpServletRequest.getHeader(header));
}
}
System.out.println(ipLog);

Tomcat 是否在此处阻止或更改客户端 IP 地址?如果是,那么我需要更改什么配置才能获得真实的客户端 IP 地址?

提前致谢..

最佳答案

您实际上是通过代理连接

如对该问题的评论所述,客户端通过隧道连接到服务器,这意味着向服务器发出实际请求的是隧道的服务器端。

这就是为什么您将本地 IP 设置为“remoteAddr”

让 Tomcat 监听公共(public)接口(interface)或所有接口(interface),并直接连接到服务器 IP,而不是通过您的隧道。

关于java - Apache Tomcat 是否阻止了客户端 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25931750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com