9

我有一个非常有趣的问题。我有一个网站,我想获取客户端 IP 地址。我找到了一些解决方案,但它们都不起作用。我正在使用 nginx。

我正在使用 expressjs

app.post("/api/test",(req, res)=>{
console.log(req.header('x-forwarded-for')) // result "::1"
console.log(req.connection.remoteAddress) // result "::1"
console.log(req.ip) // result "::1"
})

我尝试使用 3 方框架,但结果相同。

4

1 回答 1

9

如果您在本地主机上工作,这是正常的尝试在服务器上记录它,您将获得用户的地址。

或者您可能在节点服务器前面运行 nginx 或类似的反向代理,在这种情况下您应该设置正确的标头

对于 nginx,你需要这个

proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

在这里查看更多信息

于 2017-02-14T07:30:11.420 回答