gpt4 book ai didi

java - 获取客户端静态IP地址

转载 作者:行者123 更新时间:2023-12-01 11:00:37 24 4
gpt4 key购买 nike

我正在互联网上部署一个 Web 应用程序,我通过检查其客户端 IP 地址(例如 192.168.2.XXX)来检查用户的登录是否有效。实际上,我找到了一个工作代码(如下)。这段代码之前是完全可以工作的,但是一段时间后,它的输出就不再一样了。现在,这段代码只给了我 1 个 IP 地址,即服务器的 IP 地址。我的代码有什么问题吗?如何获取客户端的静态 IP 地址而不是服务器的 IP 地址?我还尝试了其他解决方案,例如 getRemoteAddr()request.getHeader("PROXY-CLIENT-IP") 但它不起作用。

Java:

String ipAddress = request.getHeader("X-FORWARDED-FOR");
if(ipAddress == null)
ipAddress = InetAddress.getLocalHost().getHostAddress();

最佳答案

您正在混合两个抽象级别,这很少是一件好事。标题X-FORWARDED_FOR由负载均衡器或代理插入。如果客户端直接到达服务器,则该 header 不存在,并且您正在执行此代码 InetAddress.getLocalHost().getHostAddress();。这正是你所说的:它正在检索运行这段代码的主机的 IP 地址,即 Web 服务器。

另请参见此处:Getting the client IP address: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, what else could be useful?

关于java - 获取客户端静态IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33361792/

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