views:

53

answers:

1

What is the best way of connecting some installed software with a certain computer via internet? I guess each install package (disk) should have its unique serial number. And the serial number should be connected to the computers unique parameters during installation, isn't it? As I know there are some approches that take from computer CPU ID and send to the server. Others recomed to use MAC address. So I am kind of confused and what to know what specialists do and recomend today.

Please share your experience and hint me the right flow of this process.

+1  A: 

The best way is to not do that. It will only cause trouble for you and your paying customers.

That said, if you still want proceed the best practices today involves quite complex schemes. The best way to get an ID is to use multiple ID:s, like CPU ID, Hard drive ID, MAC address, etc. To identify a computer you have to match 3/5 ID:s or something like that. Then the license number will not break even if a user changes a broken network card or CPU.

You still have the problem if a users completely replaces his/her computer.
To handle that problem you need a licensing server on the internet where your software has to revalidate its license at given intervals. If a new computer ID tries to validate a license previously given to another ID the new computer gets the license and the old ID will be blocked when revalidating. You have to enforce a reasonable limit of how often new computers can "take over" an existing license.

Try to look at other commercial software how they do it. Take Windows for example. While you can not study the exact implementation you can study the end user experience and end user documentation to find your required use cases for how users can change hardware and move licenses to new computers.

If you don't want angry users calling your private cell phone at 2 AM asking why your software suddenly has locked it self you have to think this through and test a lot of use cases properly.

Albin Sunnanbo
"The best way is to not do that. It will only cause trouble for you and your paying customers." What you suggest instead? And by the way thanks for your reasonable arguments and +1 for that.
Narek