【问题标题】:How to use "x-forwarded-for" in Node.js (without Express if possible)如何在 Node.js 中使用“x-forwarded-for”(如果可能,不使用 Express)
【发布时间】:2019-12-15 05:39:50
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    你快吃完了,试试吧:

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

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

    【讨论】:

    • 在本地主机上运行时,我得到 ::1,这是预期的结果吗?
    • ::1 是 ipv6 等价于 127.0.0.1。如果您的服务器启用了 ipv6,这符合预期。
    猜你喜欢
    • 2020-02-29
    • 2017-01-07
    • 1970-01-01
    • 2019-03-09
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多