Wouldn't the problem with cookies being, the user can just clears his cookie/cache and revotes again and again and again. Not that I've ever used this technique before *cough* *cough* *cough*
I'd do IP address check, and manage the logic in the backend.
If this is a true internet voting application, IP addresses are worthless for tracking. Unless you want only 1 person behind any given public internet address to be able to vote. So, once one person has voted using all the IP addresses that AT&T uses for all of their users, you are done. Pretty worthless, really. Anonymous voting polls on the internet just have to accept the fact that motivated persons can game the poll. If you can make the poll not anonymous, and require the user to submit say, and email address with the vote, it still won't be perfect, but it is better than any other approach.