E se invece oltre a fare il check dell'ip faccio anche il check del broser e SO in uso? (con PHP basta fare $_SERVER['HTTP_USER_AGENT'] )
Lo so, anche questo metodo non è infallibile al 100%, in quanto potrebbero esserci due utenti collegati allo stesso AP e con la stessa configurazione hardware, ma comunque darei una bella "limitata" al problema rispetto a fare il check del solo IP.
Per il fatto che riavviando il router cambia l'ip è una cosa già messa in preventivo e amen..
Invece la soluzione dei cookie non saprei, non si rischia di intasare troppo la memoria del client? Mettiamo che un utente vota 100 messaggi, dovrei avere per ognuno di essi una referenza nei cookie (ad esempio l'id del messaggio), non rischierei di inozzare troppo la memoria?