如何获取客户端的MAC地址?

时间:2018-10-05 05:27:41

标签: c# asp.net mac-address

我试图获取客户端PC的MAC地址,但它显示了托管我的项目的IIS服务器的mac地址。

protected void Page_Load(object sender, EventArgs e)
    {
        NetworkInterface[] anics = NetworkInterface.GetAllNetworkInterfaces();
        foreach (NetworkInterface adapter in anics)
        {
            if (amacaddress == String.Empty)
            {
                IPInterfaceProperties properties = adapter.GetIPProperties();
                amacaddress = adapter.GetPhysicalAddress().ToString();
                lblname.Visible = true;
                string ip = Request.UserHostAddress;

                lblname.Text = "MAC Address is :- " + amacaddress + "  "+ ip;
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

是的。这类似于要求通过电话获取电话的IMSI-不可能,您要拨打电话号码,其余的是实现细节。 MAC地址几乎绝不会传播一个以上的以太网域(下一台交换机/路由器)。它们不是IP协议层的成员。因此,您无法从http请求中获取它们,该请求最终是TCP,因此是IP连接。您必须在客户端上执行(C#,而不是JavaScript)代码才能获得本地MAC AddressES-复数,可能不止一个(例如:2个本地网卡,一个无线适配器= 3个MAC地址)