Endereços MAC em JavaScript
-
08-06-2019 - |
Pergunta
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?
Solução
Concordo com todas as respostas anteriores que seria uma vulnerabilidade de privacidade/segurança se você pudesse fazer isso diretamente do Javascript.Há duas coisas em que posso pensar:
- Usando Java (com um miniaplicativo assinado)
- Usando Javascript assinado, que no FF (e no Mozilla em geral) obtém privilégios mais altos que o JS normal (mas é bastante complicado de configurar)
Outras dicas
A resposta rápida e simples é Não.
Javascript é uma linguagem de alto nível e não tem acesso a esse 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 tudo que você precisa é de um identificador único, 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 aplicações internas, então sugiro que você use um componente externo para fazer isso:ActiveX para IE, XPCOM para Firefox (instalado como extensão).
Não.A razão pela qual o ActiveX pode fazer isso é porque o ActiveX é um pequeno aplicativo executado na máquina do cliente.
Imagino que o acesso a essas informações via JavaScript seria uma vulnerabilidade de segurança.
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 apenas com JavaScript e controle Active X da Microsoft. Ele só funciona no IE se o Active X estiver habilitado para o IE.Como o ActiveXObject não está disponível no Firefox, ele não funciona com o Firefox e está funcionando bem no IE.
Este script é apenas para IE:
<script language="javascript" type="text/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;
}
</script>