如何使用asp.net MVC项目获取客户端MAC地址

时间:2018-02-21 07:36:13

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

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

请帮我解决此问题。

谢谢, Tamilselvan S.

1 个答案:

答案 0 :(得分:0)

客户端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以读取网络相关详细信息,如MAC地址,IP地址和计算机名称,而不是Win32_Processor。

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

<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>