tit*_*iti 11 c# asp.net asp.net-mvc
我正试图从浏览我网站的客户端机器上获取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"]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它无法识别管理命名空间,所以我该怎么办?
jim*_*lan 15
遗憾的是,由于提供了防火墙,代理和ISP通用地址,因此无法可靠地获取客户端计算机的mac地址.但是,您可以使用以下命令获取IP地址:
var remoteIpAddress = Request.UserHostAddress;
Run Code Online (Sandbox Code Playgroud)
但是,这实际上可能代表或可能不代表客户端机器,更可能是ISP网关或其他一些IP地址.这是一个众所周知的问题,甚至google也发现使用客户端javascript很难破解(这里的想法是你通过js库获得实际的本地IP地址并将其传递给你的服务器函数).
[编辑] - 可能值得一看以下内容以获取问题的灵感/确认:
http://www.dotnetfunda.com/forums/thread2088-how-to-get-mac-address-of-client-machine.aspx