【问题标题】:Find the clients' IP address using an ExpressJS app使用 ExpressJS 应用程序查找客户端的 IP 地址
【发布时间】:2021-03-05 04:20:51
【问题描述】:

几天前,我写了一个nodejs script 来记录用户代理。虽然我的脚本确实有效,但我找不到记录客户端 REMOTE_ADDRESS 的有效方法。

app.js:

var express = require('express'), http = require('http'), app = express();

http.createServer(app).listen(8080);

app.get('/', function(req, res) {
    res.send(JSON.stringify(req.get('user-agent')))
    console.log(JSON.stringify(req.get('user-agent')));
});

所以,如果你 curl http://localhost:8080 它返回 curl/7.55.1

但是,我无法实现记录客户端的 IP 地址。 有什么解决办法吗?

【问题讨论】:

标签: javascript node.js express user-agent


【解决方案1】:

request.connection.remoteAddress 使用这个。如果您的请求来自本地主机,IP 将显示为::1 但如果您的请求来自不同的 IP,那么它将显示正确的 IP。如果您还想考虑来自代理服务器的请求,请查看以下代码: IP Address Code Snippet

【讨论】:

  • 嗨,有什么方法可以从同一地址获取 ipv4 地址吗?当从诸如移动网络之类的东西请求应用程序时,会返回一个 ipv6 地址,正如预期的那样。
  • 将 IPv6 转换为 IPv4 不是一个好习惯。但是如果你想把它转换成 IPv4 stackoverflow.com/questions/8107856/… 这个问题有一些答案。但不能保证转换后的 IPv4 将是 IPv6 的正确等效项。
猜你喜欢
  • 1970-01-01
  • 2018-04-30
  • 1970-01-01
  • 2015-09-07
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 2010-11-03
相关资源
最近更新 更多