sandywp / plugins / wpf2b-addon-blocklist
WP fail2ban Blocklist
WP fail2ban Blocklist is a collaborative preemptive blocklist for WordPress.
Ready in seconds.
v2.2.2 3,000+ installs WP 4.9+ PHP 7.4+

What you get inside
1 screen-
Dashboard widget
About this plugin
There are many plugins that use a database to check for malicious IPs after they connect, and of course fail2ban stops repeated attacks, but what if bad IPs could be blocked before they attack?
By working collaboratively – sharing attack data – WP fail2ban Blocklist does exactly that.
The Blocklist Network Service (BNS) collects attack data from participating sites, performs some analytical magic, and sends back a list of IPs that are attacking sites now but haven’t yet attacked that site. In other words, each site periodically gets a unique list of IPs to block preemptively.
GDPR
The BNS doesn’t collect personal data, and bots don’t have rights.
That said, the BNS only collects the minimum data required (time, IP, event), and only for IPs that have behaved maliciously.
Of course, it is possible that some data is generated by people behaving maliciously, but the BNS has no way to differentiate – and nor should it: an attack is an attack.
Freemius
To work, the BNS must know:
- which sites are running the blocklist add-on,
- which version is in use,
- and a shared secret for secure communication.
Freemius already provides all these, and WP fail2ban already uses Freemius; why reinvent the wheel?
Therefore, unlike the core WP fail2ban plugin, you must opt into Freemius for the blocklist to work.
sandywp / also on the shelf
Try another plugin
4.3 · 4K+ installs
Automatic updating of the comment block list in WordPress with antispam keys from GitHub.
Gravity Forms Block Email Domains
4.1 · 1K+ installs
Easily set a list of email domains to block on email fields in Gravity Forms.
5.0 · 200+ installs
Use the Comment Blocklist feature to protect your contact form.
Spin up a real WordPress site in seconds.
Test plugins, build a demo, hand a client a link — then squash it and start again. No local setup, no Docker.