如何通过asp.net mvc c获取浏览网站的客户端的mac地址#

我正试图从浏览我的网站的客户端机器获取mac地址,我已经习惯了:

using System.Management; class Sample_ManagementClass { public static int Main(string[] args) { ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection objMOC = objMC.GetInstances(); foreach (ManagementObject objMO in objMOC) { if (!(bool)objMO["ipEnabled"]) continue; Console.WriteLine((string)objMO["MACAddress"]); } } } 

但它无法识别管理命名空间,所以我该怎么办?

遗憾的是,由于提供了防火墙,代理和ISP通用地址,因此无法可靠地获取客户端计算机的mac地址。 但是,您可以使用以下命令获取IP地址:

 var remoteIpAddress = Request.UserHostAddress; 

但是,这可能实际上也可能不实际代表客户机,更可能是ISP网关或其他一些IP地址。 这是一个众所周知的问题,甚至谷歌也发现使用客户端javascript很难破解(这里的想法是你通过js库获得实际的本地IP地址并将其传递给你的服务器function)。

[编辑] – 可能值得一看以下内容以获得问题的灵感/确认:

http://www.dotnetfunda.com/forums/thread2088-how-to-get-mac-address-of-client-machine.aspx

一个人通常不可能仅从其IP地址获取计算机的MAC地址。 这两个地址来自不同的来源。 简单地说,计算机自己的硬件配置决定了它的MAC地址,而它所连接的网络的配置决定了它的IP地址。 但是,连接到同一TCP / IP本地网络的计算机可以确定彼此的MAC地址。 TCP / IP中包含的称为ARP – 地址解析协议的技术使其成为可能。 使用ARP,每台计算机都会为最近与之通信的每台设备维护一个IP和MAC地址列表。

SRC