hace un tiempo me hice la mima pregunta, buscando en la red encontre el siguiente:
Código PHP:
<?
//client IP addresse
$ip=getenv("REMOTE_ADDR");
//client mac addresse
echo"
IP-Adresse:$ip<br>
MAC-Adresse:";
$cmd = "arp $ip | grep $ip | awk '{ print $3 }'";
system($cmd);
?>
lo que he entendido es que con este codigo se trata de ejecutar el arp en el servidor utilizando el ip que ha capturado el php,
En realidad a mi no me ha funcionado ya que no se mucho de DOS y ademas decidi no darle mas vuelta al tema porque encontre un incoveniente como sabras algunos clientes tienen acceso a internet travez de un proxy (ISA).
Entonces la informacion del MAC address es un poco engañosa ya podrias estar capturando el mac address del proxy (ISA),por lo veo dificil que lo puedas capturar el mac de tu cliente real con php
un saludo,
si alguien puede hacer funcionar el codigo de arriba por favor posteelo.