JavaScript中的MAC地址

我知道我们可以通过IE(ActiveX对象)获取用户的MAC地址。

有没有办法使用JavaScript获取用户的MAC地址?

0
额外 编辑
意见: 2

6 答案

否,您无法在JavaScript中获取MAC地址,主要是因为MAC地址唯一标识了正在运行的计算机,因此这会成为安全漏洞。

现在,如果您只需要一个唯一的标识符,我建议您使用一些加密算法自己创建一个,并将其存储在cookie中。

如果您确实需要知道计算机的MAC地址,并且您正在开发内部应用程序,那么我建议您使用外部组件来执行此操作:用于IE的ActiveX,用于Firefox的XPCOM(作为扩展安装)。

0
额外
不,我实际上是在建议创建一个。
额外 作者 Vincent Robert,
@Michael Wikipedia列出了几个 UUID实施
额外 作者 Vincent Robert,
你如何建议创建一个唯一的标识符?你如何使用加密算法来保证在其机器上运行它的用户获得唯一的ID?
额外 作者 Michael,

快速和简单的答案是否定的。

Javascript是一种相当高级的语言,无法访问这类信息。

0
额外
我快速浏览了Google,我阅读的所有网页都是依靠使用ActiveX对象的IE浏览器唯一解决方案。如果你可以发布一个链接,否则显示...
额外 作者 GateKiller,
那么所有的谷歌搜索结果提供示例代码来获得MAC地址呢?
额外 作者 Moon,
我真的不认为成为“高级语言”与MAC地址有什么关系,因为任何服务器端编程语言都允许您访问ARP表,甚至间接(例如通过子进程)访问ARP表。我认为“客户端语言”会更好地工作......
额外 作者 kirbyfan64sos,
高级语言没有理由不能访问低级硬件信息。在这种情况下,这不会发生,因为这会是一个安全问题。
额外 作者 nsn,

不。 ActiveX可以这样做的原因是因为ActiveX是一个在客户端机器上运行的小应用程序。

我想通过JavaScript访问这些信息将是一个安全漏洞。

0
额外

如果这用于Intranet应用程序,并且所有客户端都使用DHCP,则可以向DHCP服务器查询给定IP地址的MAC地址。

0
额外
我怎样才能做到这一点?
额外 作者 Bardo91,

我同意所有以前的答案,如果你能直接从Javascript做到这一点,那么这将是一个隐私/安全漏洞。有两件事我可以想到:

  • 使用Java(带有签名的小程序)
  • 使用FF(通常是Mozilla)的签名Javascript比普通JS获得更高的权限(但设置起来相当复杂)
0
额外

我正在寻找同样的问题,并偶然发现了下面的代码。

如何获取客户端MAC地址(Web):

要获得客户端MAC地址的唯一方法,我们可以依赖Microsoft的JavaScript和Active X控件。如果Active X为IE启用,则只能在IE中使用。由于ActiveXObject不适用于Firefox,因此它不适用于Firefox,并且在IE中正常工作。

此脚本仅适用于IE:

<script language="javascript" type="text/javascript">
    function showMacAddress() {
        var obj = new ActiveXObject("WbemScripting.SWbemLocator");
        var s = obj.ConnectServer(".");
        var properties = s.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
        var e = new Enumerator(properties);
        var output;
        output = '<table border="0" cellPadding="5px" cellSpacing="1px" bgColor="#CCCCCC">';
        output = output + '<tr bgColor="#EAEAEA"><td>Caption</td><td>MACAddress</td></tr>';
        while (!e.atEnd()) {
            e.moveNext();
            var p = e.item();
            if (!p) continue;
            output = output + '<tr bgColor="#FFFFFF">';
            output = output + '<td>' + p.Caption; +'</td>';
            output = output + '<td>' + p.MACAddress + '</td>';
            output = output + '</tr>';
        }
        output = output + '</table>';
        document.getElementById("box").innerHTML = output;
    }
</script>
0
额外