Acho que o mais fácil seria usar um proxy HTTP transparente (como squid ) que registra as solicitações.
Redirecionar todas as solicitações HTTP de saída para esse servidor. Para obter o MAC-Adress, correlacione-se com o arquivo de concessão dos servidores DHCP ou use algo como arpwatch , se os usuários atribuírem os próprios IPs.