A) cookies. Create a cookie for them when they vote. Whenever a vote is submitted, check for the cookie. Dont submit the vote if the cookies not there. Doesn't work if users dont allow cookies
😎 One vote per requesting IP address. Admittedly thats not a great idea (1 vote per ISP)
C) Create a transeparent session (requires php to have been compiled using --enable-trans-sid). When a user votes, register that in the session. Dont allow any more votes per that session.
By combining A) and C) you can restrict most users. But not all. Or dont allow through votes for people who dont allow cookies. No duplicate votes, but then some people cant vote.