Recuperar la IP y la MAC mediante un script PHP
Thomas
-
plefebv -
plefebv -
Hola a todos,
Debo crear, en el marco de mi tfe, una página php dependiente de una base de datos mysql.
Esta página permite a un cliente identificarse.
Lo que permite enviar el identificador, la ip y la mac a la base de datos.
Mi pregunta: estoy buscando un script php que sirva para recolectar la ip y la mac del usuario para enviarlas a la base de datos
Gracias
Debo crear, en el marco de mi tfe, una página php dependiente de una base de datos mysql.
Esta página permite a un cliente identificarse.
Lo que permite enviar el identificador, la ip y la mac a la base de datos.
Mi pregunta: estoy buscando un script php que sirva para recolectar la ip y la mac del usuario para enviarlas a la base de datos
Gracias
Configuración: athlon 64 300+, gforce 7900gt, 1,5 go ram, 500 go sata, windows xp, ubuntu
18 respuestas
Hola,
Es importante saber que es imposible conocer la dirección MAC de la máquina que se conecta en cuanto hay cualquier router entre la máquina y el servidor.
Las direcciones MAC se utilizan para transmitir la información de router a router, desde el puesto cliente hasta el servidor y viceversa cuando el servidor responde.
Esto significa que la dirección MAC de la máquina que se conecta solo es visible para el primer router (a menudo incluso la 'box' Freebox, Livebox, etc.), después, el segundo intermediario ve los datos que llegan desde la dirección MAC de la box, etc., etc.
Por lo tanto, el servidor que aloja el sitio ve TODAS las conexiones llegar con la dirección MAC de su router (evidentemente, a menos que la solicitud provenga de la misma red que el servidor mismo).
Recuperar las direcciones MAC es, por lo tanto, inútil y casi siempre imposible.
Hasta pronto
wAx
Es importante saber que es imposible conocer la dirección MAC de la máquina que se conecta en cuanto hay cualquier router entre la máquina y el servidor.
Las direcciones MAC se utilizan para transmitir la información de router a router, desde el puesto cliente hasta el servidor y viceversa cuando el servidor responde.
Esto significa que la dirección MAC de la máquina que se conecta solo es visible para el primer router (a menudo incluso la 'box' Freebox, Livebox, etc.), después, el segundo intermediario ve los datos que llegan desde la dirección MAC de la box, etc., etc.
Por lo tanto, el servidor que aloja el sitio ve TODAS las conexiones llegar con la dirección MAC de su router (evidentemente, a menos que la solicitud provenga de la misma red que el servidor mismo).
Recuperar las direcciones MAC es, por lo tanto, inútil y casi siempre imposible.
Hasta pronto
wAx
Hola.
Para la IP, es la variable:
$_SERVER['REMOTE_ADDR']
por ejemplo:
Para la dirección MAC, no sé, pero creo que es según los componentes (tarjeta ethernet, wi-fi...) y no el ordenador.
https://www.php.net/manual/es/reserved.variables.php
hasta luego
--
Sylvain
Para la IP, es la variable:
$_SERVER['REMOTE_ADDR']
por ejemplo:
<?php //mostramos la dirección IP echo $_SERVER['REMOTE_ADDR']; ?>
Para la dirección MAC, no sé, pero creo que es según los componentes (tarjeta ethernet, wi-fi...) y no el ordenador.
https://www.php.net/manual/es/reserved.variables.php
hasta luego
--
Sylvain
wAx tiene toda la razón, es imposible conocer la dirección MAC de la máquina desde un script PHP.
Si bricolas un poco creando un mini software que envías en cada conexión del cliente como si fuera una cookie, pero que se ejecute en el cliente para pedirle su dirección MAC y la devuelva a tu servidor, entonces podrás divertirte almacenándola en una base de datos SQL y probándola en cada conexión del usuario...
En otras palabras, por un lado será muy incómodo para el usuario, por otro, una especie de script que se ejecute en el cliente no es realmente genial, y además, buena suerte programando todo eso :-D
Si bricolas un poco creando un mini software que envías en cada conexión del cliente como si fuera una cookie, pero que se ejecute en el cliente para pedirle su dirección MAC y la devuelva a tu servidor, entonces podrás divertirte almacenándola en una base de datos SQL y probándola en cada conexión del usuario...
En otras palabras, por un lado será muy incómodo para el usuario, por otro, una especie de script que se ejecute en el cliente no es realmente genial, y además, buena suerte programando todo eso :-D
Hola a todos,
al leer este tema, me surgió una pregunta cuya respuesta podría tal vez permitir obtener la dirección MAC del cliente (el último post es cierto que es antiguo, pero siempre puede ser útil para otros).
El javascript (si he seguido bien los diferentes tutoriales que he leído ^^) se ejecuta en el pc del cliente... ¿un script js puede, por tanto, recuperar la dirección MAC (sin problema de "enrutamiento" ya que está en el mismo pc) y enviarla a una variable? Tal vez podríamos tener acceso a ella, ¿no?
al leer este tema, me surgió una pregunta cuya respuesta podría tal vez permitir obtener la dirección MAC del cliente (el último post es cierto que es antiguo, pero siempre puede ser útil para otros).
El javascript (si he seguido bien los diferentes tutoriales que he leído ^^) se ejecuta en el pc del cliente... ¿un script js puede, por tanto, recuperar la dirección MAC (sin problema de "enrutamiento" ya que está en el mismo pc) y enviarla a una variable? Tal vez podríamos tener acceso a ella, ¿no?
Si los clientes que se van a conectar están en la misma LAN, se puede hacer un pequeño script en PHP que lance un comando del sistema.
$resultado=system("arp -a");
proporcionará todas las MAC asociadas a las IP que se han conectado al servidor... luego un tratamiento de cadenas de caracteres permitirá encontrar la MAC de una IP en particular.
Pero esto solo funcionaría en una LAN. Las MAC tienen un significado local.
$resultado=system("arp -a");
proporcionará todas las MAC asociadas a las IP que se han conectado al servidor... luego un tratamiento de cadenas de caracteres permitirá encontrar la MAC de una IP en particular.
Pero esto solo funcionaría en una LAN. Las MAC tienen un significado local.
La dirección MAC está inscrita en la tarjeta de red (ya sea integrada o no en la placa base)
--
"El fin del mundo no es para mañana, llegó ayer" (Lapinkiller)
--
"El fin del mundo no es para mañana, llegó ayer" (Lapinkiller)
La teoría del protocolo ISO la conozco, pero no es lo que estoy pidiendo. En fin, gracias de todos modos.
Si alguien tiene una idea, siempre estoy aquí.
Si alguien tiene una idea, siempre estoy aquí.
Buenas noches,
En este caso, conociendo la teoría del proto ethernet y el modelo ISO, ya deberías saber que si tu cliente no está en la misma red física, es imposible obtener la dirección MAC.
Además, es una información que no llega hasta la capa 7, donde tú trabajas. La IP forma parte de las variables de entorno del servidor web y, por lo tanto, es accesible a través de diversos métodos en PHP. La MAC no es accesible...
Buena suerte.
En este caso, conociendo la teoría del proto ethernet y el modelo ISO, ya deberías saber que si tu cliente no está en la misma red física, es imposible obtener la dirección MAC.
Además, es una información que no llega hasta la capa 7, donde tú trabajas. La IP forma parte de las variables de entorno del servidor web y, por lo tanto, es accesible a través de diversos métodos en PHP. La MAC no es accesible...
Buena suerte.
Hola..WAX. Sabes, es cierto desde un punto de vista funcional, pero puede haber matices según yo, si ese es el caso para las direcciones MAC, diría que es válido para las direcciones IP, porque antes de salir de la red, la dirección de la máquina local se mapea a una dirección pública y un número de puerto (el protocolo NAT), y por lo tanto, la dirección IP local no es visible en la red, y aquí se plantea el mismo problema. Yo pienso que es posible conocer la dirección MAC, o bien esta funcionalidad no se tiene en cuenta.
¿Qué piensas?
¡Gracias!
¿Qué piensas?
¡Gracias!
De acuerdo, pero si está en la misma red, podemos recuperar esta dirección MAC con arp -a y este otro comando como nbtstat -a "<ip>".
Pero me gustaría saber también si hay alguna manera de automatizar esta tarea para registrar las direcciones MAC en una tabla SQL haciendo que correspondan con su IP fija.
Entonces, ya sea en PHP u otro, pero imagino que existe una consulta que lo permite.
Con un script por lotes, podemos visualizar a partir de las IP las direcciones MAC correspondientes. ¿Es posible recuperar estos valores en forma de variables?
Pero me gustaría saber también si hay alguna manera de automatizar esta tarea para registrar las direcciones MAC en una tabla SQL haciendo que correspondan con su IP fija.
Entonces, ya sea en PHP u otro, pero imagino que existe una consulta que lo permite.
Con un script por lotes, podemos visualizar a partir de las IP las direcciones MAC correspondientes. ¿Es posible recuperar estos valores en forma de variables?
Hola, ¿alguien podría ayudarme a encontrar un software o un programa en PHP, shell, Perl o incluso Cygwin que me permitiría recuperar una dirección MAC en el puerto de un switch? Este es un proyecto que debo realizar para mi pasantía, pero no tengo idea de cómo proceder. ¡Agradecería un poco de ayuda por favor, gracias de antemano!
Diría que ustedes no han entendido la cuestión, así que retomemos con calma.
La dirección MAC es una dirección definida en el componente del PC (ethernet o wifi). Para acceder a ella, no se puede pasar MÁS que por la máquina.
He leído más arriba que un astuto pensaba que se podría usar JavaScript para recuperar la dirección MAC... y bien, tendrán que seguir leyendo los tutoriales de JS. ¡El JS no permite acceder a la información del PC, en efecto, se limita al navegador! Es por razones de seguridad que los creadores del lenguaje JS han limitado su campo de acción, y los entendemos :) jaja
Una forma de recuperar la dirección MAC (porque sí hay una, de todos modos) es hacer un applet de Java. ¡Que devolverá la información desde la máquina! Personalmente... mi firewall bloqueará su intento de conexión exterior... o uno de los routers... jaja y eso si he aceptado el applet.
Así que lo más sencillo es pedir a los visitantes... ¡
La dirección MAC es una dirección definida en el componente del PC (ethernet o wifi). Para acceder a ella, no se puede pasar MÁS que por la máquina.
He leído más arriba que un astuto pensaba que se podría usar JavaScript para recuperar la dirección MAC... y bien, tendrán que seguir leyendo los tutoriales de JS. ¡El JS no permite acceder a la información del PC, en efecto, se limita al navegador! Es por razones de seguridad que los creadores del lenguaje JS han limitado su campo de acción, y los entendemos :) jaja
Una forma de recuperar la dirección MAC (porque sí hay una, de todos modos) es hacer un applet de Java. ¡Que devolverá la información desde la máquina! Personalmente... mi firewall bloqueará su intento de conexión exterior... o uno de los routers... jaja y eso si he aceptado el applet.
Así que lo más sencillo es pedir a los visitantes... ¡
mi firewall bloqueará su intento de conexión exterior...
A condición de que sea un firewall software instalado en la máquina cliente
o uno de los routers.
no. ¿Cómo puede un router diferenciar entre la conexión de la llamada y la del navegador cuando el usuario está navegando?
Pero bueno, todo esto está muy bien, pero todavía no veo el interés de recuperar la @ mac...
Bueno, es una técnica antigua, pero si tienes la dirección IP de la máquina y quieres la dirección MAC, haces:
ping <dirección IP de la máquina> después de 2 o 3 pings detienes
y lanzas un arp -a y tendrás la dirección MAC correspondiente.
Deberías poder ejecutar comandos con PHP, así que deberías salir adelante.
a++
pd: esta respuesta seguramente llega demasiado tarde, pero puede servir a otros.
ping <dirección IP de la máquina> después de 2 o 3 pings detienes
y lanzas un arp -a y tendrás la dirección MAC correspondiente.
Deberías poder ejecutar comandos con PHP, así que deberías salir adelante.
a++
pd: esta respuesta seguramente llega demasiado tarde, pero puede servir a otros.
Sí, la dirección MAC está identificada de todos modos en el PC.
No obstante, no encuentro una forma de transcribirla mediante un script.
No obstante, no encuentro una forma de transcribirla mediante un script.
He encontrado la IP, pero no consigo encontrar la dirección MAC con un código PHP o JavaScript.
Si alguien tiene una idea...
Si alguien tiene una idea...
Si lo pienso, le preguntaré a mi profe de informática...
--
"El fin del mundo no es para mañana, ya llegó ayer" (Lapinkiller)
--
"El fin del mundo no es para mañana, ya llegó ayer" (Lapinkiller)
Hola,
si tu aplicación está en intranet y tu servidor es Linux. Puedes recuperar la dirección MAC del cliente de la siguiente manera:
<?php
// el código funciona en Debian 7.0, para otras versiones y distribuciones de Linux puedes cambiar el comando "cut" para recuperar el campo
$mac=system("/usr/sbin/arp -a|grep ".$_SERVER['REMOTE_ADDR']."\)|cut -f4 -d\" \"");
?>
si tu aplicación está en intranet y tu servidor es Linux. Puedes recuperar la dirección MAC del cliente de la siguiente manera:
<?php
// el código funciona en Debian 7.0, para otras versiones y distribuciones de Linux puedes cambiar el comando "cut" para recuperar el campo
$mac=system("/usr/sbin/arp -a|grep ".$_SERVER['REMOTE_ADDR']."\)|cut -f4 -d\" \"");
?>
Otra solución :winck: es hackear todos los routers de Internet ...
pero eso se debía haber hecho antes del diseño de estos routers, integrando el código en los compiladores de silicio que luego se utilizaron para diseñar los routers, en forma de una "función oculta para mantenimiento u optimización del enrutamiento"...
pero eso se debía haber hecho antes del diseño de estos routers, integrando el código en los compiladores de silicio que luego se utilizaron para diseñar los routers, en forma de una "función oculta para mantenimiento u optimización del enrutamiento"...