gpt4 book ai didi

node.js - 在Cloud9 IDE中获取用户的真实IP地址

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:10 25 4
gpt4 key购买 nike

在node.js + socket.io中,我使用此代码来获取用户的IP地址:

var clientIP = socket.handshake.headers['x-forwarded-for'] || socket.handshake.address.address;

但是结果是错误的。我 console.log 获取了这些值并得到了以下结果:

socket.handshake.address.address 显然是内部 IP (127.x.x.x)

x-forwarded-for 是 cloud9 的代理之一(107.23.232.64、54.236.78.114、107.23.123.140)。

所以显然使用了双重代理,并且代理层之一不提供 'x-forwarded-for' header ,对吧?使用cloud9绝对不可能获取用户的真实IP吗?这对我的项目至关重要。

最佳答案

Cloud9 确实使用两层代理来访问工作区中运行的应用程序。第一个代理正在检查访问权限,第二个代理正在将请求隧道传输到工作区。第二个代理由我们的基础设施提供商 OpenShift 托管,该代理会覆盖第一个代理设置的 x-forwarded-for header 。不幸的是,我们目前没有办法解决这个问题。正如评论中提到的,尽量避免依赖远程 IP。

关于node.js - 在Cloud9 IDE中获取用户的真实IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060477/

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