Perche' no nel db.

Un array non e' per sempre. ad ogni esecuzione dello script lo devi definire. Fai una tabella banned. con solo gli IP indicizzati.
quado definisci la query di identificazione passi prima da una query sui bannati. Se bannato ciao ciao, se no identifichi...

Ma bannare per range....