我知道我们可以通过IE(ActiveX对象)获取用户的MAC地址。

有没有一种方法可以使用JavaScript获取用户的MAC地址?

===============>>#1 票数:52 已采纳

我同意所有先前的回答,即如果您能够直接从Javascript执行此操作,则它将是一个隐私/安全漏洞。 我可以想到两件事:

  • 使用Java(带有签名的applet)
  • 使用签名的Javascript,在FF(通常是Mozilla)中,它比普通的JS拥有更高的特权(但是设置起来相当复杂)

===============>>#2 票数:52

快速简单的答案是“否”。

Javascript是一种高级语言,无法访问此类信息。

===============>>#3 票数:27

不,您不能在JavaScript中获得MAC地址,主要是因为MAC地址唯一地标识正在运行的计算机,因此这是一个安全漏洞。

现在,如果您只需要一个唯一的标识符,我建议您使用某种加密算法自己创建一个并将其存储在cookie中。

如果您确实需要知道计算机的MAC地址并且正在开发内部应用程序,则建议您使用外部组件来执行此操作:针对IE的ActiveX,针对Firefox的XPCOM(作为扩展安装)。

===============>>#4 票数:6

不。 ActiveX之所以能够做到这一点,是因为ActiveX是一个在客户端计算机上运行的小应用程序。

我可以想象通过JavaScript访问此类信息将是一个安全漏洞。

===============>>#5 票数:4

如果这是用于Intranet应用程序且所有客户端都使用DHCP,则可以查询DHCP服务器以获取给定IP地址的MAC地址。

===============>>#6 票数:4

我一直在寻找相同的问题,偶然发现了以下代码。

如何获取客户端MAC地址(Web):

要仅以一种方式获取客户端MAC地址,我们可以依赖于JavaScript和Microsoft的Active X控件。只有在Active X启用IE的情况下,它才能在IE中工作。 由于ActiveXObject在Firefox中不可用,因此无法在Firefox中使用,并且在IE中可以正常工作。

该脚本仅适用于IE:

 function showMacAddress() { var obj = new ActiveXObject("WbemScripting.SWbemLocator"); var s = obj.ConnectServer("."); var properties = s.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration"); var e = new Enumerator(properties); var output; output = '<table border="0" cellPadding="5px" cellSpacing="1px" bgColor="#CCCCCC">'; output = output + '<tr bgColor="#EAEAEA"><td>Caption</td><td>MACAddress</td></tr>'; while (!e.atEnd()) { e.moveNext(); var p = e.item(); if (!p) continue; output = output + '<tr bgColor="#FFFFFF">'; output = output + '<td>' + p.Caption; +'</td>'; output = output + '<td>' + p.MACAddress + '</td>'; output = output + '</tr>'; } output = output + '</table>'; document.getElementById("box").innerHTML = output; } showMacAddress(); 
 <div id='box'></div> 

  ask by Adhip Gupta translate from so

未解决问题?本站智能推荐: