to put it blankly: It cannot be done (at least i can't imagine a way of ensuring everyone can only vote once in an anonymous vote).
in reply to Avoiding multiple voting
There are several approaches u could try nonetheless:
The fact is that to get accurate votes you need an information which is unique and on which the user has no influence. If it's a vote for registered user only you could use something like a user id. Every registerd user has one and he can't change it.
- IP-Adresses: You can try to remember every IP-Adress that has already voted. But keep in mind, that firewalls masq IP's so that from outside a LAN with some hundred computers looks like one. Another thing are dial-up user which get assigned a new IP whenever they dial up
- Cookies: You can set cookies and try to identify those who already have voted. But as you pointed out yourself people can delete cookies
- Session Management: With SM you can ensure that someone can only vote once per session. But as soon as someone starts a new session he can vote again.
"WHAT CAN THE HARVEST HOPE FOR IF NOT THE CARE OF THE REAPER MAN"
-- Terry Pratchett, "Reaper Man"