是否有一种使用JavaScript获取用户的MAC地址的方法?
我同意之前所有回答的观点,如果您可以直接从JavaScript中执行此操作,那么这将是一个隐私/安全漏洞。有两件事情我可以想到:
简短而明确的回答是不行。
Javascript 是一种相当高级的编程语言,无法访问这种类型的信息。
无法使用JavaScript获取MAC地址,因为MAC地址可以唯一识别运行的计算机,这将导致安全漏洞。
如果您只需要一个唯一标识符,我建议您使用某些加密算法自己创建一个并将其存储在cookie中。
如果您真的需要知道计算机的MAC地址,并且正在开发内部应用程序,则建议您使用外部组件:对于IE,使用ActiveX;对于Firefox,使用XPCOM(作为扩展安装)。
不行。ActiveX 之所以能够做到这一点,是因为 ActiveX 是在客户端机器上运行的小型应用程序。
我认为通过 JavaScript 访问此类信息将会存在安全漏洞。
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>
我知道我来晚了。虽然答案仍然是否定的,但我找到了一种方法来生成和存储一个唯一的ID,以帮助跟踪用户在网站上的浏览。
当用户注册时,我就有了他在注册之前访问过哪些页面的完整记录。我还将此ID存储在用户表中,以供历史参考。
这也很方便,当你正在寻找可疑活动时。例如,创建了多个账户的用户。我应该指出,这是在一个金融交易网站上,数据仅用于内部使用。它确实有助于减少欺诈和重复账户。使用localStorage和这种方法可以做很多事情,但为了不给任何人带来恶意想法,我会保持简短。
1- 生成一个随机字符串。如果您生成一个40个字符的字符串,您不必太担心它们会发生冲突。我们并不是要把火箭送到火星。
我使用一个小的PHP函数来生成一个40个字符的字符串。我使用Ajax调用此函数并检索结果。
function genrandstr($length=NULL) {
if($length == NULL){ $length = 30; }
$characters =
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
localStorage.setItem('id', id) to add to localStorage
(let) or (var) id = localStorage.getItem('id') to read from localStorage
2- 使用cookies,您可以将此id存储在cookie中。
3- LocalStorage是您的好朋友。在LocalStorage中存储相同的id,很有可能您将始终拥有该id以供查看。
使用在LocalStorage中存储的id,即使用户删除了cookies,您仍然能够通过此id识别旧访问者。
如果用户删除了所有数据,则您需要重新开始当他们再次访问时。
玩得开心!
不,你不能通过JavaScript以其他方式获取用户的MAC地址,只能在IE浏览器中使用Microsoft的Active X操作。