What are the potential pitfalls of implementing a daily IP block in PHP for limiting downloads on a website?

Potential pitfalls of implementing a daily IP block in PHP for limiting downloads on a website include the risk of blocking legitimate users sharing the same IP address, potential performance issues if the list of blocked IPs grows too large, and the need for regular maintenance to clear old entries from the block list.

// Implementing a daily IP block with a time-based check to clear old entries
$blocked_ips = []; // Initialize an array to store blocked IPs

// Check if the IP is blocked before allowing download
$ip_address = $_SERVER['REMOTE_ADDR'];
if (in_array($ip_address, $blocked_ips)) {
    // IP is blocked, deny access to download
    die("You have been blocked from downloading.");
}

// Clear old entries from the block list daily
$midnight = strtotime('today midnight');
if (time() >= $midnight) {
    $blocked_ips = []; // Clear the block list at midnight
}