asp.net mac-address

asp.net - ¿Cómo puedo obtener una dirección MAC de una solicitud HTTP?



mac-address (3)

¿Alguien puede darme algunos consejos para recoger la dirección MAC del usuario de una solicitud HTTP?

Los usuarios serán de fuera de mi red.


Depende de la configuración de su red. Pero probablemente no.

Aquí hay una breve actualización sobre Ethernet e IP. La dirección MAC es una dirección única de la tarjeta de red. Se utiliza para identificar para qué usuario en el segmento de red es un paquete. Puede usar ARP para obtener una dirección MAC para una dirección IP. Pero esto funciona como se espera solo si está en el mismo segmento de red .

Entonces la pregunta es, ¿qué es un segmento de red? Depende de la tecnología que use, pero aquí están los casos comunes. Toda una red inalámbrica es un segmento de red. Cada usuario en la red puede hablar a través de Ethernet a cualquier otro usuario. En redes basadas en cable, esto depende del hardware. Si tiene un buen BNC antiguo o un hub, tiene un segmento de red con todos los usos. De nuevo cada usuario puede hablar con cualquier otro. Con un conmutador en la red, un segmento de red es solo un cable que lo conecta al conmutador. Aquí solo puedes hablar con el switch a través de Ethernet . Todos los demás usuarios necesitan al menos IP.

Lástima que la mayoría de las situaciones con HTTP, que se basa en TCP / IP, nunca se encuentra en el mismo segmento de red que su usuario en un 99,99%. Puede usar ARP, pero solo obtendrá la dirección MAC del primer salto. Se mejora, dependiendo de su hardware, es posible que ni siquiera esté en una red IP basada en Ethernet; Cajero automático por ejemplo ...


Esto no es posible, a menos que intente crear un componente ActiveX, en cuyo caso solo funcionará en IE.


No creo que haya una manera de hacerlo en ASP.NET.
MAC es una propiedad de un paquete TCP, y en el nivel HTTP no hay paquetes o MAC (por ejemplo, una sola solicitud HTTP puede ser ensamblada de varios paquetes TCP).

Puede intentar usar un rastreador de paquetes (como WireShark) para capturar paquetes TCP, y luego analizarlos para extraer los MAC y asignarlos a las solicitudes HTTP.

De todos modos, no obtendrá ningún dato útil a menos que el usuario esté en el mismo segmento de red que su servidor.

UPD. Como se señaló en los comentarios, mezclé las capas de red. La dirección MAC es una propiedad de la trama Ethernet , no un paquete TCP.
La conclusión sigue siendo correcta, sin embargo.