use the ip as the primary key of a 2-col poll table.
the vote is an integer 0-5 or whatever.
Code:
IP VOTE
1.1.1.1 4
1.2.1.1 2
1.2.1.1 2
4.2.1.1 0
1.2.9.1 3
i use zero here to 'cancel' a vote for a given ip. looks like #2 is winning...
in this way, someone can update their vote, but they can't vote more times than you can reasonably screen against without sign-in.
yes, they can vote at the coffee shop, on their phone, and at work, but they can't sit there and vote 500 times in a row...