【问题标题】:Get the IP address from request url从请求 url 获取 IP 地址
【发布时间】:2013-11-28 06:00:45
【问题描述】:

如何从 HTTP 请求 url 或运行我的节点代码的客户端 IP 获取 IP 地址。

http://127.0.0.1:1000/samp/

客户端 IP 可以是 nginx IP 或公共 IP。对此的任何帮助都会非常有帮助。
谢谢。

【问题讨论】:

  • 到目前为止你尝试过什么?看看这些问题How can I get the user's IP address using Node.js,Node.js: Get client's IP
  • 一秒钟,你想要客户端IP,还是当前机器IP
  • ping 域名你会看到它的 IP
  • @Scrum Meister 我需要客户端 IP。我使用了 request.connection.remoteAddress 和 request.headers['X-Forwarded-For'],但我没有得到确切的 IP。
  • 是否可以使用connect从请求url获取IP?

标签: node.js nginx httprequest


【解决方案1】:

假设您想要 client ip,您需要首先确定您是否信任“X-Forwarded-For”标头(即:您在自己设置的反向代理后面以及您信任的,或者您信任沿途的代理)。

如果是这样,则获取req.headers['x-forwarded-for'] 中的 ip(这可能是一个列表)。

如果不是,那么req.connection.remoteAddress 就是答案。

【讨论】:

  • 我正在使用连接。我尝试了 req.ip ,它返回我的输出未定义
  • req.ip 仅在 express 中。使用我上面写的。
  • 如果我的代码在反向代理后面运行,我如何获取 nginx ip?
  • 现代 Nginx 为您提供了一个略有不同的 Forwarded 标头。见nginx.com/resources/wiki/start/topics/examples/forwarded
【解决方案2】:

试试这个

app.get('/', function(req, res) {
      res.send(req.connection.remoteAddress);
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2010-10-26
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多