I am writing an online survey and I am wondering if there are any good techniques for allowing anonymous people to go to the survey and participate and also prevent duplicates.

I have considered the following, but there are drawbacks from each:

* Use cookie in browser
* Record IP address
* Compare answers for similarities along with either/or the first two methods

Of the techniques I have considered, you either prevent multiple people from using the same device, or make it easy for a user to duplicate survey results. Hopefully someone has an excellent way to prevent this :)