Ограничить доступ к функциональности для пользователя по IP-адресу - PullRequest
7 голосов
/ 28 февраля 2011

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

Позвольте мне углубиться в некоторые подробности, наш «анонимный / гостевой» пользователь может выполнять поиск в базе данных только 3 раза в сутки. Есть ли способ, с помощью которого я могу использовать IP-адрес для отслеживания попыток пользователей на это, ограничить их после 3 попыток, а затем заставить его истечь через 24 часа?

Сайт построен на PHP, но какой бы язык ни выполнял эту функцию, я открыт для него.

EDIT:

Эта идея исходит от клиента, у него есть список «биржевых компаний», снабжающих свои продукты, и они хотят сделать эту информацию доступной для пользователей сайта. Тем не менее, он не хочет, чтобы конкуренты использовали его систему и «подрезали» его на своих биржевых биржах. Отсюда и ограничение. Если вы можете предложить лучший способ добиться того же, то это было бы замечательно

Cheers, Dan

1 Ответ

9 голосов
/ 28 февраля 2011

Вы должны использовать глобальную переменную $ _SERVER, например:

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
  // restrict
}

Но вы должны учесть примечание Кодзиро: не стоит ограничивать IP-адрес.

Редактировать : быть конструктивным.

Если вы хотите сделать это на низком уровне, вы можете использовать куки.Эти переменные хранятся в браузере пользователя. Если пользователь очищает куки локально, он / она может отменить ваше ограничение.
http://www.php.net/manual/en/function.setcookie.php

Лучшее решение - использовать сеансы для этого фильтра:
http://php.net/manual/en/session.examples.basic.php

...