【发布时间】:2016-06-09 17:55:28
【问题描述】:
我目前正在尝试获取客户端的 IP 地址,当它试图在 java 中访问代理后面的服务器时。我尝试了以下所有方法,但似乎没有用。只有在没有代理的情况下才有效
Using getRemoteAddr() method
"X-FORWARDED-FOR"
"HTTP_X_FORWARDED_FOR"
"HTTP_X_FORWARDED"
"HTTP_X_CLUSTER_CLIENT_IP"
"HTTP_CLIENT_IP"
"HTTP_FORWARDED_FOR"
"HTTP_FORWARDED"
"HTTP_VIA"
"REMOTE_ADDR"
【问题讨论】:
-
您使用的是什么代理?它是否配置为实际设置这些标头?例如,如果您使用 NGINX 作为反向代理,您还必须对其进行配置以设置“X-Forwarded-For”标头。您还可以检查“X-Real-IP”标头。
-
我不确定正在使用哪个代理。因为它是一个我也无权访问的 uat 服务器。它不会发生在我的本地...它仅在我尝试时发生访问部署在 uat 服务器上的应用程序。 getRemoteAddr() 方法给了我代理 ip.. 我不确定这里可以做什么
-
你能检查 HTTP 请求的标头吗?
-
我解决了这个问题..我发现 x-forwaded-for 只是 x-forwarded...因此返回我的值为 null ..我不确定是谁配置错了
标签: java servlets proxy http-headers http-proxy