从请求路由通过代理获取IP和HostName

时间:2011-01-04 03:36:37

标签: java servlets hostname

这应该是一个常见的要求。请建议。

我的服务在代理后面运行,该代理从客户端接收http请求并将其转发到许多可用服务器之一。

现在我想记录调用者的身份(ip地址和主机名)。但问题是,自从我收到来自代理的请求后,我碰巧得到代理详细信息(而不是调用者)。当我执行request.getRemoteAddr();并随后InetAddress.getByName(ip).getHostName()

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:3)

反向代理通常会使用“X-Forwarded-For”标头来标识原始浏览器:

http://en.wikipedia.org/wiki/X-Forwarded-For

答案 1 :(得分:1)

我认为你的意思是反向代理。某些反向代理将设置其他请求标头,指示有关客户端的详细信息。您可以尝试查看您要查看的标题是否有任何跳出来,或查看代理文档。