【问题标题】:obtain mac address from browser including chrome, windows, safari, firefox从浏览器获取mac地址,包括chrome、windows、safari、firefox
【发布时间】:2016-11-17 23:05:20
【问题描述】:

机器内部的浏览器可以获取机器的MAC地址吗? 我正在构建一个需要获取机器唯一标识的 API(理想情况下,它可以是 MAC 地址),但是,经过讨论和研究,我意识到浏览器不支持这个。如果没有,浏览器可以通过什么方式获取设备相关的数据来替换MAC地址?

【问题讨论】:

  • 您无法从 JavaScript 获取该信息。无法直接识别任何人,您尝试的任何内容也可以更改。为什么需要了解机器?也许有不同的解决方案。
  • 试图限制机器可以使用app
  • 因此,您要么需要安装某种必须绕过安全性的插件才能获取 mac 地址(even plugins have no access),要么需要重新考虑并使其用户需要登录,或者或许可以考虑使用原生应用而不是 Web 应用。
  • 原生应用没有问题。用户可以从任何设备登录。但我想限制他们只使用某些设备。

标签: javascript google-chrome browser


【解决方案1】:

对于 IE 和 ActiveX 允许:

function networkInfo(){

var wmi = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = wmi.ConnectServer(".");


e = new Enumerator(service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"));


for(; !e.atEnd(); e.moveNext()) {
    var s = e.item();
    var macAddress = unescape(s.MACAddress);

}

return macAddress;
}
alert(networkInfo());

【讨论】:

    【解决方案2】:

    答案是否定的,浏览器无法访问设备的 MAC 地址,使用常规 Js。但是,您探索过 Node JS 吗?它有一个Mac Plugin 这也许可以与另一个名为Browserify 的插件结合使用,它可以为您提供您想要的。使用 node 的好处是大量的插件可以让你在浏览器中用 js 做一些你不能做的事情。

    但是您可以在页面加载时创建一个唯一的 UID,并通过本地存储以某种方式保存它,并在您需要设备特定 ID 时提取它。不过,这不会跨浏览器工作。希望这能为您指明正确的方向。祝你好运。

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 2012-05-03
      • 1970-01-01
      • 2020-01-21
      • 2018-12-02
      相关资源
      最近更新 更多