Una BD .. un array, un archivo de texto plano .. etc .. etc .. Eso casi es lo de menos (el sistema de almacenamiento de esos datos "IP" ..)
El caso que en PHP puedes obtener la IP de un cliente conectado a un script tuyo con la variable de servidor 'REMOTE_ADDR' y desde PHP puedes acceder vía:
$_SERVER['REMOTE_ADDR']
Usalo en tu "condicional" (sea un in_array() si usases un simple array .. o en tu consulta SQL .. etc ..)
Pero .. (siempre hay un pero o formas más óptimas de hacer algo) .. Si tienes acceso a tu servidor (Apache a ser posible) .. tienes los .htacces y directivas própias de Apache para "denegar" el acceso a ciertas IP (e incluso rangos o "mascaras" de sub-red) para que ese trabajo lo haga el servidor HTTP y no tus scripts PHP ... (revisa en el manual de Apache:
http://http.apache.org las directivas "Deny from ...." y afines ..)
Un saludo,