Come dicevo, potresti fare un merge delle informazioni lato client per riconoscere gli utenti in maniera più efficace.

E' chiaro che memorizzare gli ip può aiutare, soprattutto se ti accorgi che il medesimo ip ha fatto 200 richieste in un tempo brevissimo.

L'HTTP_USER_AGENT è violabile, però se comunque lo inserisci tra i controlli avrai un sistema leggermente più consistente.
Un'altra tecnica potrebbe essere quella di non incrementare istantaneamente il contatore, ma renderlo cumulativo al fine di scoraggiare eventuali manipolazioni.

Esistono altri header come HTTP_X_FORWARDED_FOR per capire se un utente si collega dietro proxy, ma anche qui, ovviamente, non è un'informazione efficace.


D'altronde sarebbe terribile se potessimo essere facilmente schedati da un sito web facendo semplicemente zapping.