See the question and my original answer on StackOverflow

It's not in general possible nor meaningful, since the frames have probably passed though many routers and network equipments before getting to your server.

If you still want to do it from the server, without adding anything to your clients, here are some links with C# code to determine the MAC address from an IP Adress (you could then use ASP.NET Request variable):

Get Mac Address

get MAC Address of host

Be aware that this could cause heavy performance problem if you do this on standard ASP.NET request thread. You might want to do it in someasynchronous fashion.