Normalmente, a menos que o servidor da Web e o cliente estejam no mesmo segmento de ethernet, o host que serve o PHP só conseguirá discernir o endereço IP do cliente do navegador do usuário, não o endereço MAC afiliado. Isso ocorre porque o MAC é um endereço local vinculado e os roteadores não encaminham pacotes com endereços locais vinculados. Portanto, se houver pelo menos um roteador entre o servidor da web e o cliente, o servidor da web verá apenas o MAC do roteador mais próximo a ele.
Dito isto, é possível detectar o MAC no IE usando o JavaScript do lado do cliente que faz a ponte com o NIC via ActiveX. Veja esta postagem sobre estouro de pilha para obter mais detalhes.
Como alternativa, um applet Java pode ser usado em outros navegadores. O nível de segurança para isso é definido no arquivo de política do Java Runtime Environment, portanto, se o usuário tiver ativado o acesso às informações do sistema, o applet poderá obter o MAC.
TL; DR - a menos que o navegador possua uma tecnologia habilitada que possa fazer a ponte para o sistema operacional (por exemplo, ActiveX, applet Java etc.), não é possível que o navegador detecte o endereço MAC do cliente.