从浏览器(包括Chrome、Windows、Safari和Firefox)中获取MAC地址

3

机器内部的浏览器能否获取机器的MAC地址?我正在构建一个API,需要获取机器的唯一标识(最好是MAC地址),但是经过讨论和研究,我意识到浏览器不支持此功能。如果不能,是否有任何方法可以使浏览器获取设备相关数据以替代MAC地址?


你无法从JavaScript获取那些信息。没有办法直接识别任何人,而且无论你尝试什么都可以被改变。为什么你需要知道机器?也许有不同的解决方案。 - undefined
试图限制机器使用该应用程序 - undefined
1
所以你要么需要安装某种绕过安全限制获取MAC地址的插件(即使插件也无法访问),要么需要重新考虑并让用户进行登录,或者可能考虑使用本地应用程序而不是Web应用程序。 - undefined
原生应用没有问题。用户可以从任何设备登录。但是我想限制他们只能使用特定的设备。 - undefined
1
可能是如何唯一标识访问我的网站的计算机?的重复问题。 - undefined
2个回答

0

答案是否定的,浏览器无法通过常规的JavaScript访问设备的MAC地址。不过,你有没有尝试过Node.js呢?它有一个Mac插件,也许可以与另一个名为Browserify的插件结合使用,这样就能实现你想要的功能。使用Node.js的好处在于它拥有大量的插件,可以让你在浏览器中使用JavaScript做一些其他方式无法实现的事情。

但是你可以在页面加载时创建一个唯一的UID,并通过本地存储的方式保存起来,在需要设备特定ID时再取出来。不过这种方法在不同浏览器之间可能无法正常工作。希望这能给你指明正确的方向。祝你好运。


0

对于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());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接