PHP: ¿Cómo Saber la MAC Address?
De Foros del Web
Script para saber la MAC Address de una máquina en una ethernet probado en un Solaris 9, IRIX y Windows
Vamos a interactuar un poco con el sistema operativo con los comandos ping y arp.
PING (Packet InterNet Groper):
El ping envía uno o más datagramas a un host destino esperando una respuesta, básicamente es utilizado par ver si el host destino está activo.
Si tienes instalado un firewall(Cortafuegos) en tu red es necesario tener privilegios en el,para poder ejecutar sin problemas este comando.
Sintaxis del ping:
UNIX: Solaris 9 /usr/sbin/ping 192.168.0.44 5 Irix:/usr/etc/ping -w 1 192.168.0.44
Windows: ping -w 1 192.168.0.44
La respuesta que obtenemos al ejecutar un ping varia dependiendo el OS
En Solaris 9: 192.168.0.44 is alive si esta activa y no answer from 148.215.12.1 si no lo esta
En IRIX y Windows:
Haciendo ping a 192.168.0.44 con 32 bytes de datos:
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud.
Estadísticas de ping para 129.168.0.44: Paquetes: enviados = 4, recibidos = 0, perdidos = 4 (100% perdidos), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 0ms, máximo = 0ms, promedio = 0ms
lo que nos interesa es "recibidos = 0" si no esta activa y "recibidos = 4" si esta activa
Protocolo ARP (Address Resolution Protocol) : ARP asocia las direcciones físicas de Hardware a
cada dirección IP lógica asignada a una interfaz de red, una Máscara de Control de Acceso al
Medio: es un identificador de Hardware único que es asignado por el fabricante de la NIC.
Las MAC son adjuntadas a las cabeceras de IP origen y destino.
UNIX:
Solaris 9 /usr/sbin/arp 192.168.0.44 5
Irix:/usr/etc/arp 192.168.0.44
Windows:
arp -a 192.168.0.44
Esta es una pequeñísima descripción de ARP y PING.
Código PHP:
<?php $ip="192.168.0.44"; $comando=`/usr/sbin/ping $ip 5`; //Aquí cambia un poco la salida dependiendo del OS para Irix y Windows: // $activa=explode(",",$comando); //if (eregi ("0", $activa[1])) echo "La máquina con la IP <b>".$ip."</b> no está activa<br>"; if (eregi ("no", $comando)) echo "La máquina con la IP <b>".$ip."</b> no está activa<br>"; else { //Irix:/usr/etc/arp $ip en Window$:arp -a $ip $comando=`/usr/sbin/arp $ip`; ereg(".{1,2}-.{1,2}-.{1,2}-.{1,2}-.{1,2}-.{1,2}|.{1,2}:.{1,2}:.{1,2}:.{1,2}:.{1,2}:.{1,2}", $comando, $mac); echo "La IP <b>".$ip."</b> tiene esta MAC Address <b>".$mac[0]."</b><br>"; } //By MiStYkO Redes Acatlán UNAM (México) ?>
--Mistyko 01 Mar 2004
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
