использование sleep для IP

150
29 марта 2018, 09:40

доброго

вопрос теоретический. хочу понять как работает задержка. допустим я поставил на определенной странице сайта

sleep(1);

допустим, нехороший человек начинает перебирать пароли, ну или просто давить кнопку F5, заставляя сайт перезагружаться, и соответственно тянуть ресурсы хостинга

человек_1 обратился к сайту в 0,01 сек ( обращение 1 )
человек_1 обратился к сайту в 0,02 сек ( обращение 2 )
человек_1 обратился к сайту в 0,03 сек ( обращение 3 )
человек_1 обратился к сайту в 0,04 сек ( обращение 4 )
человек_1 обратился к сайту в 0,05 сек ( обращение 5 )

Думал, sleep тормознет выполнение кода сайта для этого пользователя ( IP ), и выполнит обращение 1, остальные не дойдут. Реальность - дошли все обращения, и все с задержкой в 1 секунду

Вопрос: Как можно создать задержку для сайта для определенного IP, средствами желательно PHP ? и вообще можно ли?

p.s. я конечно могу написать, для чего спрашиваю, но обсуждение пойдет в сторону ответов, которые я уже вычитал на этом сайте ( благо поиск работает )

p.p.s. можно конечно писать IP в БД/Сессию, потом раздавать задержки по этим данным, но это медленно

Answer 1
  1. Для каждого обращения фиксируем айпи (или как вы там хотите их различать) и время обращения, сохраняем куда-нибудь (например, в базу данных или какую-нибудь глобальную переменную).
  2. Каждое обращение сравниваем с базой - если айпи в базе отсутствует, то обрабатываем и запоминаем время обращения. Если присутствует, то сравниваем время предыдущего обращения с текущим. Если промежуток меньше 1 секунды, то ничего не делаем. Если больше - обрабатываем и сохраняем новое время.
READ ALSO
Модель MVC Ошибка в файле config.php

Модель MVC Ошибка в файле config.php

Добрый деньЯ создаю модель MVC и в файле config

130
Вывести с группировкой данные MY SQL через PHP

Вывести с группировкой данные MY SQL через PHP

Доброго времени суток! Проблема такая: Есть таблица в БД:

163
Как именно происходит работа с Boost:Multiprecision:cpp_bin_float?

Как именно происходит работа с Boost:Multiprecision:cpp_bin_float?

Что представляют из себя числа cpp_bin_float в памяти? Как происходят математические операции с ними?

201