Tema: FAQ's de PHP
Ver Mensaje Individual
  #111 (permalink)  
Antiguo 01/03/2004, 13:49
mistyko
 
Fecha de Ingreso: febrero-2003
Mensajes: 12
Antigüedad: 21 años, 8 meses
Puntos: 0
Pregunta:Cómo Saber la MAC Address
Respuesta:

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)
?>