Question

How can I use PHP to uniquely identify separate machines. I would like to use the MAC address but apparently you cannot. I could use $_SERVER['REMOTE_ADDR'] but IP addresses change (don't they?). Also, the page won't be accessed by a browser but downloaded using a program so I don't believe I can set cookies.

The purpose of this is to prevent users of my shareware desktop application software from using the program beyond the trial limit on each machine (which could be done by deleting registry entries) - so I would like each new installation to register in the cloud with a mySQL database which will confirm if the machine has not previously been registered beyond the trial period.

Any thoughts?

Was it helpful?

Solution 2

Well then it's in the installation program that you should be worrying about getting a value to pass to PHP, not in the PHP script. Consider asking how to get a MAC address from the installation program – Xeon06

OTHER TIPS

I believe that you should try a different approach.

IP won't help you identify machines. Just think that I have a wireless access point at my house and all the devices that connect to the Internet have the same IP address. Or that in my company we use a proxy server, and my PC makes requests by swapping 2 different IPs.

A few software houses solve this by obligating the client to install a hardware card that acts as a key to unlock the application in a specific PC, but this kind of sotfware licences cost 4 digits or more. And it is a terrible UX. Just imagine that each time you reinstall the OS, or different hardware parts, you have to do the unlocking process from scratch (which often requires a phone call to the company's support center, on top of that).

Maybe you could try a two factor authentication, by requesting apart from the username, a once-only password sent via SMS to a unique per user phone number. And limit the requests per phone number in 5 per hour and 10 per day or so.

You could also try the popular freemium model. The free users get minimum functionality and only the paying customers have access to the good stuff.

But keep in mind that I don't know what kind of software you provide, so maybe this kind of solutions won't apply either.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top