Рейт лимитер для запросов на PHP
- Подробности
- Категория: PHP
- Просмотров: 138
Иногда нужно ограничивать количество запросов для определенного 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