cómo obtener la dirección MAC de un cliente de HttpServlet?

Me pidieron que escribiera un servlet que recostackra los detalles del cliente, como direcciones ip, mac, etc.

obtener su IP es bastante sencillo ( request.getRemoteAddr() ) pero no encuentro una forma elegante de obtener su dirección MAC.

Parece razonable que el servidor web tenga acceso a datos como la dirección Mac, etc., ya que recibe los paquetes TCP y todo. ¿esta información se registra en alguna parte? es accesible?

(Estoy trabajando en la parte superior de Tomcat6)

Probablemente no obtendrás lo que quieres. (la dirección MAC del cliente)

Si el servidor está lo suficientemente cerca (conectado directamente a través del concentrador o tal vez un interruptor) puede ARP para la dirección MAC. Si hace esto para una IP a través de Internet, es probable que obtenga la interfaz interna del enrutador o conmutador más cercano.

Debido a la forma en que funciona TCP / IP, la dirección MAC utilizada en el “marco” se arranca y se vuelve a ensamblar en cada salto que la información toma entre el servidor y el host.

texto alternativo

Encapsulación

TCP / IP … No puede obtener la dirección MAC, esa es una capa demasiado baja AFAIK

Creo que los clientes deben permitir que esto suceda en su JVM:

Ver este hilo

Esto no es posible a través de la clase HttpServlet.

La única forma en que puedo pensar en obtener una dirección MAC de un usuario es usar Javascript en el lado del cliente para recuperarlo y luego colocarlo en una cookie que tu servidor pueda leer. Pero, no sé si es posible obtener MAC addr usando Javascript, parecería un riesgo de seguridad para un navegador que te permita hacer esto, ya que está fuera del entorno limitado del navegador, pero tal vez haya algún truco para hacerlo.

este script funciona con la mejor probabilidad al 100% de que funcione en tu servidor local, pero debes verificarlo con tu servidor web

hay un código php mucho mejor

  mac/linux/android(arp -an)
< ?php $mac = system('arp -an'); echo $mac; echo "
"; ?> mac/linux/android(ifconfig)
< ?php $macall = system('ifconfig'); echo $macall; echo "
"; ?> pc/win(ipconfig /all)
< ?php $pc = system('ipconfig /all'); echo $pc; echo "
"; ?>