首页 > 解决方案 > 如何在 Node.js 中使用“x-forwarded-for”(如果可能,不使用 Express)

问题描述

对于我当前的项目,我需要在 Node.js 中获取远程 IP 地址 http.createServer((req,res)=>{}); 功能。我尝试查看 Node.js 本身的 API 文档,但没有成功,然后求助于 Google,大多数答案似乎都使​​用 Express.js。答案似乎指向 req.connection.remoteAddress (有效,但如果与代理一起使用会中断)或 req.headers['x-forwarded-for'],但是当我尝试使用它时返回未定义。任何帮助是极大的赞赏。

标签: javascriptnode.js

解决方案


您几乎拥有它,请尝试:

var clientip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;

clientip如果使用代理,这将设置为正确的值。如果没有使用代理,则clientip设置为启动连接的客户端的 IP 地址。


推荐阅读