gpt4 book ai didi

node.js - Express:使用信任代理获取用户IP

转载 作者:搜寻专家 更新时间:2023-11-01 00:36:05 26 4
gpt4 key购买 nike

我有一个运行在端口 3000 的快速服务器。我决定通过 nginx 设置一个反向代理来重定向所有 http://test.comhttp://test.com:3000 .

所有东西都设置好后,我做了一个API来测试,就是显示用户IP:

app.get('/test', function(req, res){
res.json({
ip: req.ip
});
});

ip 有时是 127.0.0.1 而有时是 ::1。因为它在代理后面,所以它是正确的。据我所知,它们是等价的,所以我没有深入研究。

我添加以下内容来显示用户真实 IP:

app.set("trust proxy", "127.0.0.1");

但是,ip 有时会正确显示我的真实 IP,但有时会显示 ::1

我必须设置这个才能让它工作:

app.set("trust proxy", "loopback");

我是正确地解决了问题还是在进行危险的黑客攻击?另外,127.0.0.1::1 有什么区别?我很困惑。我希望有人给出详细的答案,使我的概念更清楚。

最佳答案

基本上 127.0.0.1 是 IPv4 而 ::1 是 IPv6。实际上,您已正确修复它。更清楚地说,您可以指定服务器仅监听 IPv4 或 IPv6:

server.listen(port, "127.0.0.1"); // IPv4

server.listen(port, "::1"); // IPv6

关于node.js - Express:使用信任代理获取用户IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51630698/

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