我正在尝试从浏览我网站的客户端计算机上获取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地址并将其传递给服务器函数)。
[edit] -可能值得参考以下内容以启发/确认问题:
http://www.dotnetfunda.com/forums/thread2088-how-to-get-mac-address-of- client-machine.aspx