Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从express请求对象获取客户端MAC地址_Javascript_Node.js_Express - Fatal编程技术网

Javascript 从express请求对象获取客户端MAC地址

Javascript 从express请求对象获取客户端MAC地址,javascript,node.js,express,Javascript,Node.js,Express,我正试图从传入的请求对象获取MAC地址。我的应用程序运行在nginx代理之后,所以为了获得IP地址,我使用了下面的语法,它工作得很好 var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; 同样,也有一种方法可以获取已发出请求的MAC地址。我发现了这个包裹,我不确定这是否有用。基本上,我需要获取每个传入请求的MAC和IP地址。这是不可能的。MAC地址不通过互联网传输 见:或 (而且getmac只提供服务器

我正试图从传入的请求对象获取MAC地址。我的应用程序运行在nginx代理之后,所以为了获得IP地址,我使用了下面的语法,它工作得很好

var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;

同样,也有一种方法可以获取已发出请求的MAC地址。我发现了这个包裹,我不确定这是否有用。基本上,我需要获取每个传入请求的MAC和IP地址。

这是不可能的。MAC地址不通过互联网传输

见:或


(而且
getmac
只提供服务器网络接口的MAC。)

这是不可能的。MAC地址不通过互联网传输

见:或


(并且
getmac
只会给你服务器网络接口的MAC。)

你不能从请求中获取它,但是你可以先获取它,然后将它存储在
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;
您还可以记录
网络接口
以检查所需的一切:

var networkInterfaces = os.networkInterfaces();
console.log( networkInterfaces );

注意:此方法仅获取运行节点进程的设备的MAC。如果从服务器上运行,此方法将获取服务器的MAC地址,而不是发出请求的客户端的MAC地址。

您无法从请求中获取MAC地址,但可以先获取MAC地址,然后将其存储在
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;
您还可以记录
网络接口
以检查所需的一切:

var networkInterfaces = os.networkInterfaces();
console.log( networkInterfaces );


注意:此方法仅获取运行节点进程的设备的MAC。如果从您的服务器运行,此方法将获取您的服务器的MAC地址,而不是发出请求的客户端的MAC地址。

HTTP请求不包含任何MAC地址?您需要它做什么?@Bergi我正在尝试获取IP和MAC地址,以识别发出请求的最终用户设备。。我正在开发的应用程序处理订阅,我试图捕获给定日期内的订阅数量,因此当从桌面或任何手持设备发出请求时,我尝试收集每个请求的信息,您可以获取IP,但不能获取MAC地址。它不公开是有充分理由的。如果你想区分台式机和手持机,那么你应该使用其他机制。谢谢@Bergi,我可能需要使用“用户代理”要识别发出请求的设备,TTP请求不包含任何MAC地址?您需要它做什么?@Bergi我正在尝试获取IP和MAC地址,以识别发出请求的最终用户设备。。我正在开发的应用程序处理订阅,我试图捕获给定日期内的订阅数量,因此当从桌面或任何手持设备发出请求时,我尝试收集每个请求的信息,您可以获取IP,但不能获取MAC地址。它不公开是有充分理由的。如果你想区分台式机和手持设备,那么你应该使用其他机制。谢谢@Bergi,可能我需要使用“用户代理”来识别发出请求的设备。在这种情况下,因为我试图获取发出请求的设备的MAC地址,是否有任何插件或软件包可以帮助满足这一要求。正如我刚才所说,这些信息不存在于你方,因此你无法获得MAC地址,到此为止。-(只有当您控制发送请求的设备时,您当然可以添加代码以发送MAC地址作为参数。)没有什么是不可能的。另一个问题可能是:Paypal如何获取其客户机的mac地址,并将其用作帐户安全程序?我认为他们无法仅使用浏览器获取您的mac地址-可能他们使用您必须授权的Java小程序,或在客户机上运行的其他代码?关键是,“没有什么是不可能的”并不会让信息凭空出现。MAC地址不是通过Internet传输的-如果您直接连接(例如通过3G),您的路由器可以看到它,或者您的ISP可以看到它,但下一跳已经不能看到,他们会看到您的路由器或ISP的MAC地址,等等。没有任何东西会将您的MAC地址转发到链中的下一个网络硬件。如果客户端直接连接?那么在这种情况下,由于我试图获取发出请求的设备的MAC地址,是否有任何插件或包可以帮助满足此要求。正如我刚才所说,你这边不存在这些信息,所以你无法获得MAC地址,到此为止。-(只有当您控制发送请求的设备时,您当然可以添加代码以发送MAC地址作为参数。)没有什么是不可能的。另一个问题可能是:Paypal如何获取其客户机的mac地址,并将其用作帐户安全程序?我认为他们无法仅使用浏览器获取您的mac地址-可能他们使用您必须授权的Java小程序,或在客户机上运行的其他代码?关键是,“没有什么是不可能的”并不会让信息凭空出现。MAC地址不是通过Internet传输的-如果您直接连接(例如通过3G),您的路由器可以看到它,或者您的ISP可以看到它,但下一跳已经不能看到,他们会看到您的路由器或ISP的MAC地址,等等。没有任何东西将您的MAC地址转发到链中的下一个网络硬件。如果客户端直接连接?