funciona - Direcciones MAC en JavaScript
obtener direccion mac javascript (6)
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 solo podemos confiar en JavaScript y el control Active X de Microsoft. Solo funciona en IE si Active X habilita para IE. Como ActiveXObject no está disponible con Firefox, no funciona con firefox y funciona bien en IE.
Este script es solo 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>
Sé que podemos obtener la dirección MAC de un usuario a través de IE (objetos ActiveX).
¿Hay alguna manera de obtener la dirección MAC de un usuario usando JavaScript?
Estoy de acuerdo con todas las respuestas anteriores de que sería una vulnerabilidad de privacidad / seguridad si pudieras hacer esto directamente desde Javascript. Hay dos cosas en las que puedo pensar:
- Usando Java (con un applet firmado)
- Usando Javascript firmado, que en FF (y Mozilla en general) obtiene mayores privilegios que JS normal (pero es bastante complicado de configurar)
La respuesta rápida y simple es No.
Javascript es un lenguaje de alto nivel y no tiene acceso a este tipo de informació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.
No, no puede obtener la dirección MAC en JavaScript, principalmente porque la dirección MAC identifica de forma exclusiva la computadora en ejecución, por lo que sería una vulnerabilidad de seguridad.
Ahora, si todo lo que necesita es un identificador único, le sugiero que cree uno usted mismo usando algún algoritmo criptográfico y lo almacene en una cookie.
Si realmente necesita conocer la dirección MAC de la computadora Y está desarrollando aplicaciones internas, le sugiero que use un componente externo para hacer eso: ActiveX para IE, XPCOM para Firefox (instalado como una extensión).
Si esto es para una aplicación de intranet y todos los clientes usan DHCP, puede consultar en el servidor DHCP la dirección MAC para una determinada dirección IP.