Правильный ли это подход или есть ли лучшие, чтобы каждый клиент голосовал один раз?
Не совсем. Идея о том, что каждый компьютер имеет уникальный IP-адрес, верна лишь частично.
На самом деле люди имеют более одного устройства (например, телефон, компьютер на работе, компьютер дома). И каждое устройство может быть подключено к другой сети, с уникальным IP-адресом в каждом. Также IP-адреса меняются довольно часто. Отключите домашний модем / маршрутизатор на пару минут, и вы, вероятно, получите новый IP-адрес при повторном подключении. Так что можно сменить свой домашний IP и проголосовать снова. Более того, многие клиенты (если не большинство) находятся за устройствами NAT , что означает, что их IP-адрес используется многими другими пользователями. По предложенной вами схеме, когда кто-то за тем же NAT, что и вы, голосует, никто другой не может. Наконец, пользователи могут легко использовать VPN, TOR и различные другие методы, чтобы в основном голосовать столько раз, сколько они хотят.
Кроме того, как бороться со спуфингом IP?
IPподмена адреса не является тривиальной, если вы используете TCP. Однако получить реальный IP-адрес, отличный от текущего, довольно просто (VPN, TOR и т. Д.), И с этим мало что можно поделать.