From time to time I'm asked to add a plugin function for an unique machine ID. With the 10.3pr4 plugins we got a function for this: SystemInformationMBS.MachineID. I think a few people will be happy, but I need to warn about it. This ID may not be unique. Virtual machines can have the same ID as well as cloned installations. Also the ID may change over time. Maybe some values used for the machine ID or even the algorithm to calculate it can change. So whenever the MachineID does not match a stored one, you know that something changed. Maybe a new computer, maybe the same. But that is the time to reask for license information like a license key.
Now the Machine ID in my plugins is based on the serial number of the first hard disc in the computer, the brand string of the main CPU, the serial number of a Mac or it's model name. Those 4 values typically only change if you replace the harddisc or get a new computer. All the functions we use are exposed in the SystemInformationMBS module, so check them. You can build your own ID yourself if you like.
We do not use the MAC Address for the ID as it changes if you switch between wireless network and wired network. Also not counted in is the physical memory size as people like to upgrade their memory and the ID should not break too often.
More information: http://www.monkeybreadsoftware.net/pluginpart-systeminformation.shtml