【问题标题】:Getting remote User Mac address获取远程用户 Mac 地址
【发布时间】:2018-09-04 09:19:34
【问题描述】:

我正在使用 mongodb、express 和 nodejs 构建一个基于 Intranet 的 webapp 的项目。该项目的目标是通过身份验证获取用户mac地址并运行远程ssh。然而,我发现很难获得远程 pc mac 地址。客户端和服务器应该在同一个本地子网上。我尝试使用节点getmac模块,但显然它只提供主机服务器的mac,

var macAddress = require('getmac');
require('getmac').getMac(function(err, macAddress){
if (err)  throw err
console.log(macAddress)
});

我也尝试了 macfromip 模块,但是你必须预定义主机 IP 才能获取远程计算机的 mac。

var macfromip = require('macfromip');
macfromip.getMac('192.168.1.100', function(err, data){
    if(err){
        console.log(err);
    }
    console.log(data);

});

有没有其他方法可以获取用户的mac地址?

【问题讨论】:

    标签: node.js mac-address


    【解决方案1】:

    您似乎无法从 IP 获取 MAC 地址。
    getMac 的文档没有任何与.getMac('192.168.1.100')相关的内容

    我认为这个工作的一种方法是拥有一个包含 IP 及其 MAC 地址的数据库。
    这将需要一些东西来保存数据库中的每个 MAC 地址。可能是在每台计算机上启动时运行的脚本。


    有人在security.stackexchange.com 上提出了这个问题。由于在同一个网络上,如果你在命令行中使用命令ping,该IP的MAC地址将被注册到ARP列表中。

    ping your_ip_address
    

    有了这个,你应该能够获得 MAC 地址:

    arp -a
    

    考虑到这一点,我找到了您可能感兴趣的以下 2 个 nodejs 包: https://www.npmjs.com/package/ping 和 https://www.npmjs.com/package/node-arp

    【讨论】:

    • 感谢您的回复,但是,就像我提到的,getMac 模块只提供服务器的 MAC 地址,还有另一个 npm 模块“macfromip”获取预定义 IP 地址的 MAC 地址和它可以工作,但是,客户端可能会从随机机器登录,因此他们的 IP 地址会有所不同。
    • 那我没看到问题。如果一个用户从随机机器登录,除了它你会做什么?
    • 我需要获取用户登录的特定机器的 mac 地址,如果我已经知道用户登录的源机器,我会使用 macfromip,但由于用户可能从网络上的不同电脑我想将 mac 地址与登录名相关联
    • 但是:Login > HTTP Request > IP > MAC 用于每台计算机的每次登录。您可以在登录时询问这是否是永久计算机,并且您只能拥有一台永久计算机。并将该 MAC 地址保存到数据库中
    【解决方案2】:

    我想你必须做这个客户端并将其传回。

    根据SO answer 的声音,您无法在 Javascript 中轻松做到这一点,但答案表明:

    • 使用 Java(带有签名的小程序)
    • 使用签名的 Javascript,它在 FF(和一般的 Mozilla)中获得比普通 JS 更高的权限(但设置起来相当复杂)

    【讨论】:

      猜你喜欢
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2021-03-18
      • 1970-01-01
      • 2012-06-06
      • 2018-04-30
      相关资源
      最近更新 更多