【问题标题】:How to get the client MAC address using asp.net MVC project如何使用 asp.net MVC 项目获取客户端 MAC 地址
【发布时间】:2018-02-21 07:36:12
【问题描述】:

我的 Web 应用程序中有一个场景需要通过 java 脚本或服务器端代码找出客户端的 MAC 地址。

请帮我解决这个问题。

谢谢, Tamilselvan S.

【问题讨论】:

  • 您尝试过什么了吗?我找到了很多关于这个主题的资源,但不幸的是,没有什么对我有用。请注意,我发现的所有内容都暗示客户端必须授权您的应用程序,所以如果您的目标是在他不知道的情况下获取客户端的 MAC 地址......祝你好运
  • Reliable method to get machine's MAC address in C#how to get mac address of client that browse web site by asp.net mvc c# 的可能重复项(“在 c# 中获取客户端 MAC 地址”的前 2 个 google 结果)
  • 除此之外,大多数消息来源都明确指出读取客户端的 MAC 地址并不容易(至少,远程读取),我还需要问:出于什么原因? MAC 地址经常被误认为是一种可靠、独特且安全的客户端识别方式,即it isn't

标签: javascript c# jquery asp.net-mvc google-chrome


【解决方案1】:

客户端 IP 地址或客户端 MAC 地址?可以使用 Page.Request.UserHostAddress 检索第一个。第二个问题(MAC地址)稍微复杂一些,需要用到WMI。您需要在 JavaScript 中创建一个对象,查询 WMI 并将信息传递回服务器。此外,您需要允许在 IE 中访问未签名的 ActiveX。试试下面的一个。

<script type="text/javascript">
        var macAddress = "";
        var ipAddress = "";
        var computerName = "";
        var wmi = GetObject("winmgmts:{impersonationLevel=impersonate}");
        e = new Enumerator(wmi.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"));
        for(; !e.atEnd(); e.moveNext()) {
            var s = e.item(); 
            macAddress = s.MACAddress;
            ipAddress = s.IPAddress(0);
            computerName = s.DNSHostName;
        } 
    </script>

这里我们将访问 Win32_NetworkAdapterConfiguration 而不是 Win32_Processor,以读取与网络相关的详细信息,例如 MAC 地址、IP 地址和计算机名称。

然后我们可以简单地使用文本框来显示该信息或您喜欢的任何内容。

<input type="text" id="txtMACAdress" />
<input type="text" id="txtIPAdress" />
<input type="text" id="txtComputerName" />

<script type="text/javascript">
    document.getElementById("txtMACAdress").value = unescape(macAddress);
    document.getElementById("txtIPAdress").value = unescape(ipAddress);
    document.getElementById("txtComputerName").value = unescape(computerName);
</script>

【讨论】:

  • @Mohan Srinivas,我尝试使用启用 Activex 在 IE 中运行上述 html。但我收到错误说“getObject 未定义”,结果文本框为空
  • 如果答案有帮助,请标记答案。
  • 启用 Active X 的 IE...这是一个高度假设的场景,尤其是在 Intranet 之外,它已经过时、有害且危险
  • 是的@thmshd 这就是为什么提到“第二个问题(MAC 地址)稍微复杂一些”
  • @MohanSrinivas OP 告诉你你的解决方案对他不起作用,解释他得到了什么结果(以及他没有得到什么),他从你那里得到的所有答案都是“标记答案如果答案有帮助”?我是唯一一个对此感到困惑的人吗?另请注意,“接受答案”按钮不是用来标记“有用”的答案(这里有赞成按钮),它是在这里说“这个答案解决了我的问题或 是最有帮助的”(在最后一种情况下,OP 应该等待一段时间再这样做 - 以防出现更好的解决方案)
猜你喜欢
  • 2017-10-28
  • 2011-07-01
  • 2021-03-18
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多