2016-07-14 5352 views
1

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

+0

你无法摆脱的JavaScript信息。没有办法直接识别任何人,并且您尝试的任何内容都可以更改。为什么你需要知道机器?也许有一个不同的解决方案。 – epascarello

+0

试图限制机器可以使用应用程序 –

+0

因此,您将需要安装某种插件,必须绕过安全来获取mac地址[(即使插件无法访问)](http://stackoverflow.com/questions/22281307/is-it-it-it-it-mac-address-by-chrome-extension),或者你需要重新考虑它并使其成为用户需要登录的地方,或者考虑原生应用程序,而不是一个Web应用程序。 – epascarello

回答

0

答案是否定的,浏览器无法访问设备的MAC地址,常规Js。但是,你有没有探究过Node JS?它有一个Mac Plugin 或许可以与另一个名为Browserify的插件一起使用,这可以让你得到你想要的。使用节点的好处是大量的插件允许您在浏览器中使用js进行操作,否则您无法做到这一点。

但是,您可以在页面加载时创建一个唯一的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()); 
相关问题