Pregunta

¿Cómo puedo saber la dirección MAC del visitante en Linux de alojamiento (nginx)?

A partir de usuario Ethernet.

Gracias.

¿Fue útil?

Solución

No se puede conseguir que a través de PHP.

protocolo de redes se utiliza en una pila. Al hacer las comunicaciones HTTP, el servidor web utiliza el protocolo HTTP, responsable de las comunicaciones de alto nivel. Este protocolo se implementa en la parte superior del protocolo TCP (que lleva corriente-como las conexiones y números de puerto), que a su vez se implementa en la parte superior del protocolo IP (v4 o v6, que traer direcciones IP para la identificación), que en a su vez se implementa en la parte superior del protocolo Ethernet.

El protocolo Ethernet es la que se necesita para trabajar. Tiene tanto la dirección MAC de origen y la dirección MAC de destino. Sin embargo, desgraciadamente, hay una gran cantidad de problemas con él.

En primer lugar, los datos que transmite es probablemente difícil acceso:. Digo "probablemente" porque nunca me topé con la forma de hacerlo

En segundo lugar, al igual que se obtiene la dirección del router de su cliente cuando acceden a su sitio, se obtiene MAC del router dirección de su cliente a nivel Ethernet. A menos que no atraviesan cualquier router (que sólo sucedería si el servidor se conecta directamente a la máquina cliente sin ningún enrutador interferir, porque hay una gran cantidad de routers por ahí que los datos de retransmisión a otras partes de Internet), hay hay posibilidad de que la dirección MAC que recibirá será de su cliente.

En tercer lugar, Apache nunca tratará de acceder a esos datos. Y a partir de PHP es "un recinto de seguridad" en el entorno de red Apache le da, no hay manera que pueda girar hacia atrás con el protocolo Ethernet.

Así que el acceso a la dirección MAC de un visitante de una página web, a partir de PHP, no es posible.

Editar Parece que ha tomado la parte PHP de su pregunta. Así que, obviamente, el último punto no se presentará más.

Otros consejos

No se puede conseguir con php que no está incluido en http

La cuestión más general es éste . Dado que todos PHP tiene que trabajar con (estoy asumiendo que esto es PHP que se ejecuta en el servidor web, aquí) es la petición HTTP, usted no será capaz de obtener la dirección MAC. Eso requiere algo que se ejecuta en el lado del visitante.

Esto puede, o no puede trabajar. Sé que va a trabajar en los clientes de LAN, sin embargo, para los clientes externos puede ser incorrecta. No sé demasiado mi red, pero vale la pena un derecho tiro?

Si se ejecuta el comando arp -a en Windows o Linux, lo que imprimirá sus registros ARP, que luego se puede analizar para el mac.

Aparte de eso, por lo que yo sé, Apache (y por lo tanto php) no acaba de dar a conocer las direcciones MAC en su env vars.

* Editado:. Lo siento, eso no va a funcionar ... La mejor utilidad es Arping sin embargo, que sólo le dará el mac de su router

Si quieres hacer esto, los clientes necesitarán para ser conectado directamente a su servidor, sin enrutador en el medio ...

Sin embargo, si ese es el caso, entonces el trabajo arping voluntad ... no sé de una mejor herramienta, pero parece un poco derrochador que hacer un ping (de raíz) por sólo una dirección MAC.

La dirección MAC es visible únicamente en el proveedor de la red, si estoy en lo correcto (su anfitrión Internet puede ver la dirección MAC del router, por ejemplo), no creo que se puede conseguir con php.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top