gpt4 book ai didi

java - request.getRemoteAddr() 返回 null

转载 作者:行者123 更新时间:2023-11-30 08:06:19 29 4
gpt4 key购买 nike

我正在使用 tomcat 7 和 servlet 3 在本地计算机上开发一个应用程序。在此,我尝试读取 Servlet 中的客户端地址,以使用始终返回 null 的 request.getRemoteAddr() 来识别请求来自何处。

我也尝试过提到的here ,但面临同样的问题。我在一些地方读到,使用计算机名称而不是本地主机可以解决该问题。我尝试使用机器名称仍然是同样的问题。

任何人都可以提供任何帮助链接或解决方案文档,以进行必要的配置更改以检索 IP 地址吗?

最佳答案

检查您收到的 header 。请求可能是通过存在 X-Forward-For 的代理发出的。在这种情况下,您必须读取 X-Forwarded-For 值。

req.getRemoteAddr() 通过从打开的套接字连接读取属性来返回。假设,中间有一个代理,代理是服务器的直接客户端。代理负责以 X-Forwarded-For header 的形式发送实际客户端的地址。

默认情况下,tomcat 不支持 X-Forwarded-For 值。但有一个过滤器可以帮你完成这项工作。当您调用 req.getRemoteAddr();

时,此过滤器将返回 X-Forwarded-For

https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/filters/RemoteIpFilter.html

关于java - request.getRemoteAddr() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31046596/

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