Eu sei que podemos obter o endereço MAC de um usuário via IE (objetos ActiveX).
Existe uma maneira de obter o endereço MAC de um usuário usando JavaScript?
Eu sei que podemos obter o endereço MAC de um usuário via IE (objetos ActiveX).
Existe uma maneira de obter o endereço MAC de um usuário usando JavaScript?
Respostas:
Concordo com todas as respostas anteriores que seria uma vulnerabilidade de privacidade / segurança se você pudesse fazer isso diretamente do Javascript. Posso pensar em duas coisas:
A resposta rápida e simples é não.
Javascript é uma linguagem de alto nível e não tem acesso a este tipo de informação.
Não, você não pode obter o endereço MAC em JavaScript, principalmente porque o endereço MAC identifica exclusivamente o computador em execução, portanto, seria uma vulnerabilidade de segurança.
Agora, se você só precisa de um identificador exclusivo, sugiro que você mesmo crie um usando algum algoritmo criptográfico e armazene-o em um cookie.
Se você realmente precisa saber o endereço MAC do computador E está desenvolvendo para aplicativos internos, sugiro que use um componente externo para fazer isso: ActiveX para IE, XPCOM para Firefox (instalado como uma extensão).
Se for para um aplicativo de intranet e todos os clientes usarem DHCP, você poderá consultar o servidor DHCP para obter o endereço MAC de um determinado endereço IP.
Eu estava procurando o mesmo problema e me deparei com o código a seguir.
Como obter o endereço MAC do cliente (Web):
Para obter o endereço MAC do cliente, podemos contar com o controle JavaScript e Active X da Microsoft. Só funciona no IE se o Active X estiver habilitado para o IE. Como o ActiveXObject não está disponível com o Firefox, não está funcionando com o firefox e está funcionando bem no IE.
Este script é apenas para 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>