Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Lista negra de IP em PHP + MySQL


A consulta a seguir não precisa ser executada regularmente e pode ser movida para um cron job:
DELETE FROM failures WHERE release_time < ?;

Esta consulta "booleana" retornará 1 se a pessoa estiver na lista negra, 0 caso contrário:
SELECT
  COUNT(ip_address) as blacklisted
FROM blacklist
WHERE
  ip_address = ? AND
  release_time > ? AND
  failures > 5

Pode acelerar as coisas, pois você não está usando PHP para contar linhas e comparar números:
if ($row['blacklisted']) { /* ... */ }

Eu não acho que você pode evitar o último realmente.