Great question — answering as the UphillTech team:
I think the easiest would be to use a transparent HTTP proxy (like squid ) which logs the requests. Redirect all outgoing HTTP requests to that server. To get the MAC-Adress either correlate with the DHCP servers lease file or use something like arpwatch , if the users assign the IPs themselves.
Full answer by arved: https://unix.stackexchange.com/a/145260 (CC BY-SA 3.0).
Need it done for your business? UphillTech.