【问题标题】:how to get the Mac Address of client machine in c# MVC如何在 C# MVC 中获取客户端机器的 Mac 地址
【发布时间】:2016-11-07 12:42:29
【问题描述】:

我已尝试获取本地/客户端机器的 Mac 地址,但我在任何设备或计算机上都获得了相同的 Mac 地址。我使用了下面的代码。

string macAddresses=null;
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
   if (nic.OperationalStatus == OperationalStatus.Up)
   {
       macAddresses += nic.GetPhysicalAddress().ToString();
       break;
    }
 }

另外,我试过这个link,但我不知道如何添加ManagementClass的引用

提前致谢。

【问题讨论】:

  • 您无法获取客户端机器的Mac地址,只能获取代码运行所在机器的Mac地址
  • 要使用ManagementClass,只需添加对System.Management的引用
  • 我想识别设备。有什么方法可以使用吗?

标签: c# .net asp.net-mvc-4 web


【解决方案1】:

无法唯一标识客户端计算机。您可以做的最好的事情是使用某种唯一标识符向客户端添加一个 cookie。这就是谷歌和其他广告和营销公司试图追踪用户的做法。但是,浏览器中设置的任何 cookie 都无法供 Android 应用使用,因此您仍然无法将两者联系起来。在多个平台上唯一识别用户的唯一万无一失的方法是使用帐户。通过用户在您的网站上登录,然后在您的 Android 应用上登录,您会知道它是同一用户。否则,你就不走运了。

【讨论】:

  • 克里斯,你能解释一下这条线吗?您能做的最好的事情就是使用某种唯一标识符向客户端添加一个 cookie。
  • 您对哪一部分有问题?
  • 您能做的最好的事情就是向客户端添加一个带有某种唯一标识符的 cookie。
  • 第一次从移动浏览器调用API,第二次从移动应用程序调用。
  • 这意味着这不适用于您的方案。例如,Google Analytics 所做的是在客户端(网络浏览器)上设置一个带有唯一标识符的 cookie。然后,该 cookie 可用于用户访问的任何其他使用 GA 的网站上的 GA 脚本。通过这种方式,Google 可以跟踪用户去过的地方。但是,cookie 是特定于网络浏览器会话的,重要的是,它不适用于 Android 应用程序。您可以通过您的网站和 Android 应用跟踪同一用户的唯一方法是登录。
【解决方案2】:

除非客户端和服务器都在同一个局域网上,否则无法获取客户端机器的 MAC 地址。

【讨论】:

    猜你喜欢
    • 2011-01-02
    • 2013-11-08
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2016-09-06
    • 2017-10-15
    • 2014-10-04
    • 2017-10-28
    相关资源
    最近更新 更多