Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在Mozilla中获取MAC地址,ActiveXObject无法工作_Javascript_Firefox - Fatal编程技术网

Javascript 正在Mozilla中获取MAC地址,ActiveXObject无法工作

Javascript 正在Mozilla中获取MAC地址,ActiveXObject无法工作,javascript,firefox,Javascript,Firefox,这个函数在IE中运行得很好,但在mozilla firefox中它在第一行就被破坏了。我将locator.ConnectServer(“.”)更改为locator.ConnectServer(“机器”),但它在Mozilla Firefox中仍然不起作用。简单回答:你不能 出于安全考虑,现代浏览器沙盒(或尝试)处理浏览器中的所有内容。沙盒阻止直接访问系统,包括文件系统、硬件等(这并不意味着浏览器不与硬件通信,但作为用户,我们无法直接访问硬件) IE是唯一支持ActiveX(这是微软自己的技术)的

这个函数在IE中运行得很好,但在mozilla firefox中它在第一行就被破坏了。我将locator.ConnectServer(“.”)更改为locator.ConnectServer(“机器”),但它在Mozilla Firefox中仍然不起作用。

简单回答:你不能

出于安全考虑,现代浏览器沙盒(或尝试)处理浏览器中的所有内容。沙盒阻止直接访问系统,包括文件系统、硬件等(这并不意味着浏览器不与硬件通信,但作为用户,我们无法直接访问硬件)

IE是唯一支持ActiveX(这是微软自己的技术)的浏览器,但出于同样的原因,(主要是…)安全性,不应该依赖它

如果您想将MAC地址用于某种唯一标识符/安全性,您可以转而研究新的,但是,在撰写本文时,它仍然处于草稿模式,并且没有得到广泛的支持(但将来某个时候会或打算跨浏览器),因此目前可能不是非常有用的建议


在任何情况下,您都可以使用服务器端根据各种因素生成一个唯一标识符,并使用cookie或localStorage等将其本地存储在浏览器中。

Firefox(或除IE以外的任何其他浏览器)不支持
ActiveXObject
。这很好,替代方案是什么?@user1199842可能没有。这类信息通常被视为敏感信息。谢天谢地,这在非MSIE中不起作用;-)若要标识设备,可以创建一些GUID并保存到localStorage。
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
            var service = locator.ConnectServer(".");
            var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
            var e = new Enumerator(properties);
            var MACaddress = '';
            alert("Its Inside");
            for (; !e.atEnd(); e.moveNext()) {
                var p = e.item();
                if (p.MACAddress) {
                    MACaddress = MACaddress + p.MACAddress + ',';
                }
            }
            MACaddress = MACaddress.substring(0, MACaddress.length - 1);
            MACaddress = replaceAll(MACaddress, ':', '-');
            location.href = location.href + '?CAT=MAC&MACAddr=' + MACaddress;