Как сохранить IP пользователя, который использует случайно сгенерированный IP? - PullRequest
2 голосов
/ 19 сентября 2010

в моем проекте мне нужно разрешить систему рейтинга для пользователей только один раз.У меня есть таблица в моей базе данных, где я храню все IP-адреса, и я проверяю, если IP-адрес пользователя отсутствует в базе данных, я разрешаю оценку.

Но теперь я столкнулся с проблемой.

Есть провайдеры, которые генерируют случайные IP-адреса каждый раз, когда пользователь перезагружает компьютер.

Поэтому, когда я звоню $ip=$_SERVER['REMOTE_ADDR'];, каждый раз, когда он возвращает разные результаты с того же компьютера.

Я также пыталсячто-то вроде

if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
        $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
    {
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
        $ip=$_SERVER['REMOTE_ADDR'];
    }

Но это не помогает.

Как я могу решить эту проблему?

Большое спасибо

Ответы [ 7 ]

5 голосов
/ 19 сентября 2010

Вы должны признать, что некоторые пользователи будут менять IP-адреса.

Если ваша система голосования важна, рассмотрите возможность добавления регистрации, проверки электронной почты вместе с проверками IP, чтобы отфильтровать примитивные читы.

Опять же, несмотря на то, что обмануть подобные системы всегда довольно просто (например, веб-прокси)

2 голосов
/ 19 сентября 2010

Единственный способ эффективно бороться с этим - использовать уникальную систему входа в систему, но даже в этом случае пользователи могут создавать несколько учетных записей.

1 голос
/ 19 сентября 2010

Лучший вариант - заставить их зарегистрироваться, чтобы проголосовать / проголосовать.

Нет абсолютного способа, которым вы сможете отслеживать их в противном случае.

1 голос
/ 19 сентября 2010

В дополнение к проверке ip вы можете внедрить cookie, это не идеальное решение, но, если пользователь не удалит его, вы можете использовать эту вторую проверку, чтобы найти повторные попытки голосования

0 голосов
/ 19 сентября 2010

Вы можете использовать комбинацию как установки файла cookie на клиенте, так и сохранения IP-адреса, вы также можете получить копию публичных прокси-серверов и черный список IP-адресов, а также подтверждение электронной почты.не полное доказательство, если человек очищает кеш и имеет динамический IP, но вы можете замедлить спамера.

0 голосов
/ 19 сентября 2010

Вы можете использовать setcookie для записи файла cookie на жесткий диск пользователя после голосования. Конечно, опытным пользователям будет легко удалить это и проголосовать дважды.

0 голосов
/ 19 сентября 2010

Невозможно получить старый IP-адрес пользователя с сервера superglobal.

Файлы cookie также могут работать, но на самом деле это невозможно для системы двойного рейтинга.

...