How do I identify a remote computer with a unique ID.
IP address may not be unique enough on networks which share IP.
MAC or other hardware information are not available or depend on OS, Architecture, configuration, etc.
Cookies are a possible solution. I could delete the cookies on my browser, to change the browser. Also I must read a lot of information (each client on each stored cookie). In my database does not exist any relation.
Which could be the solution?
If you want a permanent identifier, the short answer is that you don’t have one. The MAC address isn’t available to you. It’s available to the router, but by the time it gets to you, it’s been stripped off (actually, each router between you and the client machine replaces the MAC address with its own).
You’ve got IP address (and if it’s coming from a private, non-routable subnet or if the request is being proxied), all you’ve got is the single IP address representing the client subnet.
You can get the session id, though:
The problem with that is that it’s a fairly transient value. You could alternatively set a persistent cookie with an expiration date far in the future.
The client system, of course, is free to toss the cookie (or not to accept it).