i've another suggestion!
How about blocking a file based on the SHA1 sum.
Most of the internet users have dynamic IP's so,
IMHO, blocking an IP isn't very efficient (comparing to the SHA1 blocking).
Also when blocking an IP instead of having a fixed time limite, an dynamic time limit would be nice (example: blocking an IP for 7 days should mean if in the next 7 days there isn't no hit the IP should be unblocked. If there's a hit in that time period should be extended).
Greetings!