From what I know, all the MAC addresses that the packet gone through are in the packet. This is because that each packet that goes in a certain path, should also be returned
You can't - unless the client is local to your server. Provided it is, you can try arp-pinging it and getting the client's mac address that way.