Pregunta

Sé que podemos obtener la dirección MAC de un usuario a través de IE (objetos ActiveX).

¿Existe alguna forma de obtener la dirección MAC de un usuario mediante JavaScript?

¿Fue útil?

Solución

Estoy de acuerdo con todas las respuestas anteriores en que sería una vulnerabilidad de privacidad/seguridad si pudiera hacer esto directamente desde Javascript.Hay dos cosas en las que puedo pensar:

  • Usando Java (con un subprograma firmado)
  • Usando Javascript firmado, que en FF (y Mozilla en general) obtiene mayores privilegios que JS normal (pero es bastante complicado de configurar)

Otros consejos

La respuesta rápida y sencilla es No.

Javascript es un lenguaje de bastante alto nivel y no tiene acceso a este tipo de información.

No, no puede obtener la dirección MAC en JavaScript, principalmente porque la dirección MAC identifica de forma única la computadora en ejecución, por lo que sería una vulnerabilidad de seguridad.

Ahora bien, si todo lo que necesita es un identificador único, le sugiero que cree uno usted mismo utilizando algún algoritmo criptográfico y lo almacene en una cookie.

Si realmente necesita saber la dirección MAC de la computadora Y está desarrollando aplicaciones internas, le sugiero que use un componente externo para hacerlo:ActiveX para IE, XPCOM para Firefox (instalado como extensión).

No.La razón por la que ActiveX puede hacerlo es porque ActiveX es una pequeña aplicación que se ejecuta en la máquina del cliente.

Me imagino que el acceso a dicha información a través de JavaScript sería una vulnerabilidad de seguridad.

Si esto es para una aplicación de intranet y todos los clientes usan DHCP, puede consultar al servidor DHCP la dirección MAC para una dirección IP determinada.

Estaba buscando el mismo problema y me topé con el siguiente código.

Cómo obtener la dirección MAC del cliente (Web):

Para obtener la dirección MAC del cliente, la única manera que podemos confiar en JavaScript y el control Active X de Microsoft. Solo funciona en IE si Active X está habilitado para IE.Como ActiveXObject no está disponible con Firefox, no funciona con Firefox y funciona bien en IE.

Este script es sólo 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top