Answers:
快速简单的答案是“否”。
Javascript是一种高级语言,无法访问此类信息。
不,您不能在JavaScript中获得MAC地址,主要是因为MAC地址唯一地标识正在运行的计算机,因此这是一个安全漏洞。
现在,如果您只需要一个唯一的标识符,我建议您使用某种加密算法自己创建一个并将其存储在cookie中。
如果您确实需要知道计算机的MAC地址并且正在为内部应用程序开发,那么建议您使用外部组件来执行此操作:针对IE的ActiveX,针对Firefox的XPCOM(作为扩展安装)。
如果这是用于Intranet应用程序,并且所有客户端都使用DHCP,则可以查询DHCP服务器以获取给定IP地址的MAC地址。
我一直在寻找相同的问题,偶然发现了以下代码。
如何获取客户端MAC地址(Web):
要仅以一种方式获取客户端MAC地址,我们可以依靠Microsoft的JavaScript和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>