我试图从传入的请求对象中获取MAC地址。我的应用程序在nginx代理后运行,所以为了获取IP地址我使用下面的语法,它工作正常。
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
同样有一种方法可以获取已经发出的请求的MAC地址。遇到这个包https://www.npmjs.com/package/getmac,我不确定这是否会有所帮助。从根本上说,我需要获取每个传入请求的MAC和IP地址。
答案 0 :(得分:3)
这是不可能的。 MAC地址不通过互联网传输。
请参阅:https://superuser.com/questions/510920/is-my-mac-address-public-when-browsing-the-internet或https://security.stackexchange.com/questions/36583/can-a-website-still-detect-my-real-mac-address-even-if-i-use-different-virtual-m
(而getmac
只会为您提供服务器网络接口的MAC。)
答案 1 :(得分:0)
您无法从请求中获取它,但可以先获取它,然后将其存储在req.session
中。
如何获取mac地址:
const os = require( 'os' );
var mac_ip = os.networkInterfaces()['en3'][3]['mac'];
console.log('ip_test: ', ip_test);
req.session.macip = mac_ip;
您还可以登录networkInterfaces
来检查所有所需内容:
var networkInterfaces = os.networkInterfaces();
console.log( networkInterfaces );
注意:此方法将仅获取运行节点进程的设备的MAC。如果从服务器上运行,则此方法将获取服务器的MAC地址,而不是发出请求的客户端的MAC地址。