I think $MachineID is the value you should look at. That should be related to the entire Machine and should be a unique identifier.. What is wrong with it?
You could get the mac address by filtering out:
RunProcess[{"ifconfig", "-a", "ether"}]
on a mac and linux platforms, On windows it is called ipconfig I believe. Note that mac addresses can be easily spoofed (using ifconfig actually).