一尘不染

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

c#

我正在尝试从浏览我网站的客户端计算机上获取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"]);
        }
    }
 }

但是它不是公认的管理命名空间,所以该怎么办?


阅读 835

收藏
2020-05-19

共1个答案

一尘不染

不幸的是,由于提供了防火墙,代理和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

2020-05-19