Nodejs ip 地址结果 ::1

Fur*_*dın 7 ip-address clientip node.js

我有一个非常有趣的问题。我有一个网站,我想获取客户端 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"
})
Run Code Online (Sandbox Code Playgroud)

我尝试使用 3 方 freamwork 但结果相同。

nik*_*oss 8

如果您在 localhost 上工作,这很正常,请尝试将其记录在服务器上,您将获得用户的地址。

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

对于 nginx 你需要这个

proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
Run Code Online (Sandbox Code Playgroud)

检查这里获取更多信息