You didn't say, but I am assuming you are talking about Windows. It is a problem on WIndows because even the ethernet (MAC) address can be changed. Now there are problems changing the MAC address if the computer is networked to either a local area network or the internet.. You see, MAC addresses are globally unique (well, at least they are supposed to be). If you change your MAC address to the same one of another machine, they wont be able to communicate. Now you have a better chance of winning the Lotto than picking the same MAC address that you may be communicating with.
I prefer "composite" id's. This just means that the unique ID is made uf of several different elements that don't have to be that secure, just unique. With my licensing software SafeGuard LM, we can lock to many things, and most people are ok with just using the ethernet address, because you have to be sort of technical to change it and not everyone knows how or could be bothered to do it because the software wouldn't work anyway without a license being issued for a price. So unless you are giving your license file to your friend, and showing them how to change their MAC address (and now since it is your friend or another of your own computers, the chances of them being networked is greater).
So my point is, you need to step back and look at your customer base and decide how secure you need it to be.
In any case, I can give you code to get any id you want. Just let me know which platform.
Mark