Ограничение поисковых запросов на каждый IP-адрес в день

У меня на небольшом веб-сайте хранятся несколько PDF-файлов, но чтобы не допустить, чтобы все pdf-файлы были заполнены чьим-то скриптом (и чтобы отслеживать популярность каждого файла), я требую, чтобы люди вводили имя pdf (которое они уже будут знать) в поле ввода PHP. Тем не менее, кто-то может написать сценарий, который отправляет повторяющиеся запросы в поле ввода и путает мое соединение. Есть ли способ ограничить количество поисковых запросов IP до определенного количества в день? Например, я хотел бы запретить пользователям запрашивать более 25 раз за любые 24 периода, может ли это быть настроено либо с помощью плагина / виджета / другого?

EDIT: по запросу я добавляю PHP-код, который у меня до сих пор (я НИКОГДА не кодировал PHP раньше, пожалуйста, не ненавидите!):

<?php if (isset($_POST['boxname'])) { $start = microtime(true); //Store query $name = $_POST['boxname']; //Display query from text box echo "Searching for " . $name . "\n"; $counted = array_count_values(file('./log.txt')); arsort($counted); foreach($counted as $person => $count) echo "{$person} : {$count}<br />\r\n"; if ($count < 25) { //Store current date/time of server and display date_default_timezone_set('America/Chicago'); $datetime = date('l, F j, Y \a\t G:i:s'); //Display current date/time of server echo 'Server date and time is: '; echo $datetime . "\n"; if (!file_exists("/var/www/wordpress/" . $name)) { wp_redirect( "/var/www/wordpress/" . $name ); exit(); } else { echo "File does not exist."; } } //Store guest IP address and display $ip = $_SERVER['REMOTE_ADDR']; //Display guest IP address echo $ip . "\n"; $end = microtime(true); //Append query, date/time, IP, and execution time to log file $logfile = "./log.txt"; file_put_contents($logfile, $datetime . ", " . $ip . ", " . $name . ", " . round($end - $start, 4) . "\n", FILE_APPEND); } ?>