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?

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top