我正在使用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地址?
答案 0 :(得分:0)
您似乎无法从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
考虑到这一点,我找到了您可能感兴趣的这两个nodejs包: https://www.npmjs.com/package/ping和https://www.npmjs.com/package/node-arp
答案 1 :(得分:0)
我想你必须做这个客户端并将其传回去。
根据SO answer的声音,您无法在Javascript中轻松完成,但答案显示: