【问题标题】:Getting the IP of systems connected to my local Express server获取连接到本地 Express 服务器的系统 IP
【发布时间】:2018-05-02 13:15:08
【问题描述】:

我使用 Express 创建了一个简单的 Web 应用程序。当我的 Express Node 服务器运行时,我可以从与我连接到同一个 WiFi 网络的设备(而不是我的系统)访问应用程序。
我如何知道哪个设备访问了我的网站?我可以获取路由器分配的用户的私有 IP 地址吗?

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    您可以使用request 对象的ip 属性,如下所示。

    以下是发送请求的 IP 的方法。

    const express = require('express')
    const app = express()
    
    app.get('/', (req, res) => res.send(req.ip));
    
    app.listen(80, () => console.log('Example app listening on port 80!'))
    

    【讨论】:

    • 我有一个疑问,是否有可能获得正在使用这个 rest api 的实际用户 IP。例如,我有一个 api,即xxx/Alpha/api/kriyoAdmin/login 我想知道这个 api 调用发生在哪里?根据您的代码,它返回 xx 的 api。但我想要像 192.168 这样的实际 IP。某某
    • 抱歉,进行了编辑。我在回答中误写了hostname
    • 它返回响应为 ::1。那么系统的IP地址如何呢?
    • ::1 在 ipv6 中是 localhost
    • 如何获取ipv4地址?
    【解决方案2】:

    我使用这段代码来获取系统的 ipv4 地址和物理地址。希望这可以帮助 。

    var os = require('os');
    var on=os.networkInterfaces();
    var o=JSON.stringify(on);
    var obj = JSON.parse(o); // this is how you parse a string into JSON 
    var n=JSON.stringify(obj['Wi-Fi']); //use "Wi-Fi" for windows system and "wlp3s0" for LINUX systems
    var nn=JSON.parse(n); 
    var n2=JSON.stringify(nn[0].mac);
    var n3=JSON.stringify(nn[1].address);
    console.log("Physical Address: " +n2);
    console.log("IP Address : ",n3);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-20
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 2016-09-22
      相关资源
      最近更新 更多