如何获得mac地址

本文关键字:地址 mac 何获得 | 更新日期: 2023-09-27 18:03:51

我可以得到一个连接到我的网站的MAC地址吗?

此代码获取MAC地址主机并返回错误权限。

  String macadress = string.Empty;
        foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
        {
            OperationalStatus ot = nic.OperationalStatus;
            if (nic.OperationalStatus == OperationalStatus.Up)
            {
                macadress = nic.GetPhysicalAddress().ToString();
                break;
            }
        }
        return macadress;

现在怎么能得到MAC地址的用户??

2。如何获得IP用户?

如何获得mac地址

不幸的是,您无法以您想要的方式获得用户的MAC地址。我的理解是,当数据包离开本地网络时,MAC地址将从数据包中剥离。

您可以尝试Request.UserHostAddress获取用户的地址。然而,如果你在一个负载均衡器或内容分发网络后面,那么你可能想要先尝试在Request.Headers["X-Forwarded-For"]中寻找-这是用户的原始IP地址,当请求被转发时,通常会被写入。

我通常采用的方法是尝试以下内容:

var address = Request.Headers["X-Forwarded-For"];
if (String.IsNullOrEmpty(address))
    address = Request.UserHostAddress;

在我参与的最后一个项目中,我们实际上记录了这两个,以防转发的for头是伪造的。

不能从请求中获取MAC地址,但是可以通过Request.UserHostAddress获取IP

无法获取终端用户机器的MAC地址。

可以通过Request.UserHostAddress获取用户的公网IP地址。

注意IP地址,这不是每个用户唯一的。
如果多个用户使用同一个代理,或者在一个公司网络上,他们通常会共享相同的地址。您可以查看X-Forwarded-For头以获取更多信息。
注意,这个头文件可以被链接或伪造。

public string GetMacAddress(string ipAddress)
        {
            string macAddress = string.Empty;
            System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
            pProcess.StartInfo.FileName = "arp";
            pProcess.StartInfo.Arguments = "-a " + ipAddress;
            pProcess.StartInfo.UseShellExecute = false;
            pProcess.StartInfo.RedirectStandardOutput = true;
             pProcess.StartInfo.CreateNoWindow = true;
            pProcess.Start();
            string strOutput = pProcess.StandardOutput.ReadToEnd();
            string[] substrings = strOutput.Split('-');
            if (substrings.Length >= 8)
            {
              macAddress = substrings[3].Substring(Math.Max(0, substrings[3].Length - 2)) + "-" + substrings[4] + "-" + substrings[5] + "-" + substrings[6] + "-" + substrings[7] + "-" +
                      substrings[8].Substring(0, 2);
                return macAddress;
            }
            else
            {
                return "not found";
            }
        }