【问题标题】:How to Get ip address of client using our website using nodejs? [duplicate]如何使用我们的网站使用 nodejs 获取客户端的 IP 地址? [复制]
【发布时间】:2017-06-10 08:02:42
【问题描述】:

我试图通过 java 脚本获取正在使用我的网站的客户端系统的 IP 地址,但失败了。我不想使用第三方,例如“https://jsonip.com/” 检索此信息。我知道使用 Node.js 是可能的并尝试过,但由于此代码未运行而失败。

var express = require('express');
var app = express();
var http = require('http');
app.post('/testurl', function(req, res) {
    console.log(req.connection.remoteAddress);
});

请帮帮我。

【问题讨论】:

  • 我是一个随机的家伙,4 年后问同样的问题.. RESPEC

标签: node.js express


【解决方案1】:

::1 是本地主机的 IPv6。

如果您只愿意收听 IPv4,请使用:

app.listen(3000, '127.0.0.1');

参考:https://stackoverflow.com/a/30463191/2013580

【讨论】:

    【解决方案2】:

    这是请求的一部分

    req.connection.remoteAddress
    

    你可以这样得到它

    var app = require('express')();
    
    app.get('/', function(req, res) {
      res.send('your IP is: ' + req.connection.remoteAddress);
    });
    
    app.listen(1337);
    

    【讨论】:

    • 我得到“你的 IP 是:::1”作为响应。但是 ip 必须像示例 192.168.23.78 对。你能帮帮我吗。
    • 是的.. 那是因为您正在从 localhost 运行您的应用程序并从同一台机器上对其进行测试。尝试通过 LAN 访问它或将您的代码推送到外部网络服务器,您将看到 IP 更改。 tl;博士; ::1 === 本地主机的 IPv6
    • 非常感谢您的帮助。
    • 显然 req.connection 现在在节点 v16.x.x 中已弃用,请改用 req.socket
    猜你喜欢
    • 2013-05-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2010-12-11
    • 2016-01-12
    • 2021-07-05
    相关资源
    最近更新 更多