CloudFlare works great. I use them for several sites.
Here's a very basic summary of how it works:
- You update your DNS settings so that traffic to your site goes through CloudFlare first.
- Because they protect a large number of websites they are able to see things, like IP addresses, that are responsible for unusual activity.
- Once a certain threshold is reached CloudFlare will block that IP address from accessing websites protected using their services.
- Since they use the network of sites they protect to monitor things their system can learn as it goes, which is great.
- CloudFlare can prevent DDoS attacks as well, saving you resources and bandwidth by blocking the malicious traffic before it reaches your server.
Having your DNS route through CloudFlare also doesn't cause any lag, as CloudFlare is one of the fastest DNS providers on the web: http://blog.cloudflare.com/cloudflare-fastest-free-dns-among-fastest-dns
An additional benefit of CloudFlare is that they work like a Content Delivery Network, caching your files and serving them up from servers around the world.
On this page http://www.cloudflare.com/features-cdn they say:
your website, on average, loads twice as fast for your visitors
regardless of where they are located
You can also see stats like how much quicker you pages load, how much bandwidth CloudFlare saved you, and a few other things through their Dashboard.
There are also a bunch of optional features that you can enable, such as the option to serve up copies of your pages from their cache even if your server is unavailable, keeping your site online in such cases when it would typically become unavailable.
You can't go wrong, since they offer the service for free, so it's worth giving it a try like you have to see the benefits for yourself.