在Mozilla中获取MAC地址,ActiveXObject不起作用
Getting MAC Address in Mozilla, ActiveXObject is not working
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;
此功能在IE中运行良好,但在第一行本身的Mozilla Firefox中被破坏。我更改了定位器。连接服务器(".")到定位器。ConnectServer("MACHINE"),但它仍然无法在Mozilla Firefox中工作。
简单的答案:你不能。
出于安全原因,现代浏览器对浏览器中发生的所有事情进行沙箱(或尝试)。沙盒阻止对系统的任何直接访问,包括文件系统、硬件等(这并不意味着浏览器不与硬件通信,但作为用户,我们无法直接访问它)。
IE是唯一支持ActiveX(这是Microsoft自己的技术)的浏览器,但出于同样的原因(主要是......)安全性,不应该依赖它。
如果您想将 MAC 地址用于某种唯一标识符/安全性,您可以查看新的 Web 加密 API,但是,在撰写本文时,它仍处于草稿模式并且未得到广泛支持(但将来某个时候会或打算成为跨浏览器),所以目前可能不是那么有用的建议。
在任何情况下,您都可以使用服务器端根据各种因素生成唯一标识符,并使用 cookie 或 localStorage 等将其存储在本地浏览器中。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 不能从angular2中的子组件指定父组件中的数组
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 监视函数从服务返回不起作用,但作用域函数起作用
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Javascript循环不会自我更新
- 幻灯片滚动javascript不起作用
- 表追加而不附加最后一个元素
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Node.js v6.2.0类扩展不是函数错误
- ActiveXObject 不是为除 IE 之外的所有浏览器定义的
- 在Mozilla中获取MAC地址,ActiveXObject不起作用
- ActiveXObject(“Scripting.FileSystemObject”)对我不起作用
- 获取不带activexobject的上传文件大小
- 在Java脚本中运行system命令,不带activexobject
- ActiveXObject运行不返回(shell)