Capturando o endereço MAC da placa de rede


Muita gente tem a necessidade de capturar o endereço MAC da placa de rede e fica na dúvida se o PHP faz isso, ao pé da letra o PHP sozinho não pode fazê-lo, mas o PHP possui recursos que permitem que o seu sistema Web consiga capturar o endereço MAC da placa de rede.

A primeira coisa a saber é que o endereço MAC só é propagado junto aos pacotes da rede dentro de uma rede privada, se os pacotes forem enviados via Internet o endereço MAC é apagado, ou seja, se o seu sistema irá funcionar na Internet nem adianta que você não vai conseguir capturar o endereço MAC dessa forma, seria necessário um applet Java assinado e toda aquela coisa de o usuário aceitar, etc, etc mas isso é uma outra história.

Você se lembra que o PHP pode executar comandos do sistema operacional onde ele está sendo executado (independente se for Windows, Linux, Solaris ou qualquer outro)? Se o seu ambiente for Linux (o mais comum para o PHP) você pode fazer isso:

system(ifconfig -a)

Assim apenas tratando o retorno que o system() lhe dará é possível identificar o endereço MAC de um computador pelo PHP, porém além do problema do endereço MAC não ser enviado via Internet o mesmo pode ser falsificado até com relativa simplicidade o que torna o controle de usuários, por exemplo, feito pelo endereço MAC potencialmente inseguro e sujeito a falhas.

Outros comandos podem ser utilizados para capturar o endereço MAC, como o ARP por exemplo, e sua sintaxe e ordem de execução irá variar de acordo com o sistema operacional do servidor.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.