【发布时间】:2010-09-05 10:14:31
【问题描述】:
我知道我们可以通过 IE(ActiveX 对象)获取用户的 MAC 地址。
有没有办法使用 JavaScript 获取用户的 MAC 地址?
【问题讨论】:
我知道我们可以通过 IE(ActiveX 对象)获取用户的 MAC 地址。
有没有办法使用 JavaScript 获取用户的 MAC 地址?
【问题讨论】:
不,您无法通过其他方式使用 JavaScript 获取用户的 MAC 地址,只需在 IE 浏览器中使用 Microsoft 的 Active X op 即可
【讨论】:
我正在寻找同样的问题,偶然发现了以下代码。
如何获取客户端MAC地址(Web):
要获取客户端MAC地址,我们只能依靠微软的JavaScript和Active X控件。它只有在IE启用Active X的情况下才能在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>
【讨论】:
我同意之前的所有答案,如果您能够直接从 Javascript 执行此操作,这将是一个隐私/安全漏洞。我能想到的有两点:
【讨论】:
不,你不能在 JavaScript 中获取 MAC 地址,主要是因为 MAC 地址唯一标识了正在运行的计算机,所以它是一个安全漏洞。
现在,如果您只需要一个唯一标识符,我建议您使用某种加密算法自己创建一个并将其存储在 cookie 中。
如果您确实需要知道计算机的 MAC 地址并且您正在开发内部应用程序,那么我建议您使用外部组件来执行此操作:IE 的 ActiveX,Firefox 的 XPCOM(作为扩展安装)。
【讨论】:
不。 ActiveX 能做到这一点的原因是 ActiveX 是一个运行在客户端机器上的小应用程序。
我认为通过 JavaScript 访问此类信息将是一个安全漏洞。
【讨论】:
如果这是用于 Intranet 应用程序并且所有客户端都使用 DHCP,则可以向 DHCP 服务器查询给定 IP 地址的 MAC 地址。
【讨论】:
快速而简单的答案是否定的。
Javascript 是一种高级语言,无法访问此类信息。
【讨论】: