在不更改软件代码的情况下获取客户端ip地址



我们在不同的机器上有haproxy和websphere来发布软件。软件试图将客户端的ip插入数据库,但它插入了haproxy的ip。程序员只使用这些代码,它们不会更改。

ipAddress = request.getRemoteAddr();

我得到了tcpdump,我可以看到客户端的ip在http层的x-forwarded-for标签上。我认为软件并不是用这个标签来获取的。有没有办法把x-forwarded-for改成remoteaddress?有没有什么技巧可以在不更改软件代码的情况下获得客户端的ip?我应该在websphere服务器或haproxy层中做什么?

Websphere版本8.5.5.11haproxy版本1.8

由于websphere是一种商业产品,我建议询问IBM应该在websphere中设置哪个参数。

在互联网上搜索一下就找到了这个页面当部署在此页面链接的WebSphere感知代理服务器之后时,潜在的WebSphere Application Server问题HTTPServlet请求.getRemoteAddr/getRemoteHost从8.5.5.16或9.0.0.11开始返回WebSphere插件主机值。

Tomcat有远程IP阀,我认为websphere也有类似的选项。

我还强烈建议使用更新版本的HAProxy,因为1.8即将结束https://www.haproxy.org/。

相关内容

最新更新