Рейт лимитер для запросов на PHP

Иногда нужно ограничивать количество запросов для определенного ip ...

 

Рейт лимитер для запросов на PHP

Вот пример реализации:


function rateLimiter($requestCount, $timeWindow, $limit) {
    $currentTime = time();
    $requestTimes = array();

  // Check if there are any requests within the time window
    foreach ($requestCount as $timestamp => $count) {
        if ($timestamp >= ($currentTime - $timeWindow)) {
            $requestTimes[] = $timestamp;
        }
    }

    // If the number of requests within the time window is less than the limit, allow the request
        if (count($requestTimes) < $limit) {
            return true;
        } else {
            return false;
        }
}


Эта функция принимает три параметра: $requestCount - массив с количеством запросов в каждый момент времени, $timeWindow - время окна (в секундах), в которое нужно ограничить количество запросов, и $limit - максимальное количество запросов в окне времени. Функция проверяет, сколько запросов было сделано в последние $timeWindow секунд и разрешает запрос, если количество запросов меньше $limit.

 

Смотрите также: рейт лимитер Nginx 

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта PHP Рейт лимитер для запросов на PHP