Na verdade existe uma forma de pegar o mac address do usuário, mas como falaram acima, provavelmente o firewall do cara bloqueie este tipo de acesso as informações e sua variavel retorne vazia. o código é este aqui: // LIMPA VARIAVEL IP
$ip = "";
// SE EXISTIR PEGA O IP DA REDE, SE não PEGA O IP REMOTO
$ip = ($_SERVER["HTTP_X_FORWARDED_FOR"] != '') ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER['REMOTE_ADDR'];
// MANDA UM PACOTE DE INFORMACAO
$ping = shell_exec("ping -c1 ".$ip."");
// ELE PROCURA SE NA LISTA DO ARP TEM ESSE IP E CAPTURA TODAS AS INFORMACOES
$output = shell_exec("arp -n ".$ip."");
// SEPARA A STRING DE SAIDA POR ESPACO EM BRANCO
$mac = preg_split("/\s+/",$output);
echo $mac[8]; abraços