Why? You'll have to read up on how TCP/IP routing works. If you try to resolve an IP address to a physical address for a remote machine in another subnet or acrossed the internet somewhere, you'll get back the physical address of the near-side interface of the first router your network path encounters going from the server to the client, not of the client machine. That means ARP will return physical address on the network local to the caller, your server.
The problem with that is ARP is only good on the local network. So that leaves resolving the physical address using ARP. That means you can't get the info you want using WMI. Chances are really good that your ASP.NET server account does NOT have any permissions at all to your client machines. The solutions provided so far will only work on Windows machines, IF and only IF your server ASP.NET account has permissions to the client machine. What none of these schmucks are telling you (because they have no idea what they're doing) is what you want isn't possible in most cases.