{"id":128782,"date":"2020-09-26T04:07:31","date_gmt":"2020-09-26T04:07:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easy-ip-blocker\/"},"modified":"2026-05-13T11:13:55","modified_gmt":"2026-05-13T11:13:55","slug":"easy-ip-blocker","status":"publish","type":"plugin","link":"https:\/\/am.wordpress.org\/plugins\/easy-ip-blocker\/","author":13623412,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.1.0","stable_tag":"2.1.0","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Easy IP Blocker","header_author":"Carl Alberto","header_description":"Easily blocks IPs","assets_banners_color":"1e2328","last_updated":"2026-05-13 11:13:55","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/wordpress.org\/plugins\/easy-ip-blocker\/","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/easy-ip-blocker\/","header_author_uri":"https:\/\/carlalberto.code.blog\/","rating":5,"author_block_rating":0,"active_installs":200,"downloads":5851,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"carl-alberto","date":"2020-09-26 04:07:24"},"1.0.3":{"tag":"1.0.3","author":"carl-alberto","date":"2021-10-09 16:37:44"},"1.0.4":{"tag":"1.0.4","author":"carl-alberto","date":"2022-10-24 14:16:39"},"2.0.2":{"tag":"2.0.2","author":"carl-alberto","date":"2026-05-11 20:58:17"},"2.1.0":{"tag":"2.1.0","author":"carl-alberto","date":"2026-05-13 11:13:55"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3529201,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3529201,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3529201,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3529201,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3529201,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3529201,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.0.3","1.0.4","2.0.2","2.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1944,1174,1951,600,493],"plugin_category":[54,55],"plugin_contributors":[130323],"plugin_business_model":[],"class_list":["post-128782","plugin","type-plugin","status-publish","hentry","plugin_tags-block-ip","plugin_tags-firewall","plugin_tags-ip-blocker","plugin_tags-security","plugin_tags-traffic","plugin_category-security-and-spam-protection","plugin_category-seo-and-marketing","plugin_contributors-carl-alberto","plugin_committers-carl-alberto"],"banners":{"banner":"https:\/\/ps.w.org\/easy-ip-blocker\/assets\/banner-772x250.png?rev=3529201","banner_2x":"https:\/\/ps.w.org\/easy-ip-blocker\/assets\/banner-1544x500.png?rev=3529201","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/easy-ip-blocker\/assets\/icon.svg?rev=3529201","icon":"https:\/\/ps.w.org\/easy-ip-blocker\/assets\/icon.svg?rev=3529201","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Easy IP Blocker is a lightweight security plugin that lets you block unwanted IP addresses directly from your WordPress dashboard. Protect your site from malicious traffic, brute-force login attempts, and spam by maintaining a blocklist with just a few clicks.<\/p>\n\n<p>Your entire blocklist is stored as a single plain-text option \u2014 one entry per line. There is no database table, no import\/export workflow, and no complicated UI. Just copy, paste, and save. Back up your list by copying the textarea contents to a text file, or restore it by pasting one back in. It is that simple.<\/p>\n\n<p>Need to block IPs faster? Use the built-in WP-CLI commands to add, remove, or list entries without ever opening the dashboard.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Block individual IPs, CIDR ranges, or wildcard patterns<\/li>\n<li>CDN\/proxy-aware IP detection \u2014 supports Cloudflare, Fastly, Akamai, AWS CloudFront, Sucuri, and custom headers<\/li>\n<li>Auto-detects your CDN\/proxy and recommends the correct setting<\/li>\n<li>Plain-text flat list \u2014 copy and paste to back up, migrate, or restore<\/li>\n<li>WP-CLI support (<code>wp eib add\/remove\/list\/clear<\/code>) for scripting and automation<\/li>\n<li>Lightweight and fast \u2014 no external dependencies, API calls, or extra database tables<\/li>\n<li>Compatible with PHP 7.4 through 8.4<\/li>\n<li>Helps prevent brute-force attacks, spam, and unauthorized access<\/li>\n<li>Comment support \u2014 use # to annotate and organize your blocklist<\/li>\n<li>Modern, clean admin interface with tabbed layout<\/li>\n<\/ul>\n\n<p><strong>Supported CDN \/ proxy providers:<\/strong><\/p>\n\n<ul>\n<li><strong>Cloudflare<\/strong> \u2014 reads <code>CF-Connecting-IP<\/code><\/li>\n<li><strong>Fastly<\/strong> \u2014 reads <code>Fastly-Client-IP<\/code><\/li>\n<li><strong>Akamai<\/strong> \u2014 reads <code>True-Client-IP<\/code><\/li>\n<li><strong>AWS CloudFront<\/strong> \u2014 reads <code>CloudFront-Viewer-Address<\/code><\/li>\n<li><strong>Sucuri<\/strong> \u2014 reads <code>X-Sucuri-ClientIP<\/code><\/li>\n<li><strong>Generic proxy<\/strong> \u2014 reads <code>X-Forwarded-For<\/code><\/li>\n<li><strong>Custom header<\/strong> \u2014 specify any header name your proxy sets<\/li>\n<li><strong>Direct<\/strong> \u2014 uses <code>REMOTE_ADDR<\/code> when no proxy is in use<\/li>\n<\/ul>\n\n<p>The plugin auto-detects which CDN or proxy is in front of your site and recommends the correct setting. You can also choose manually from the Settings tab.<\/p>\n\n<p><strong>Supported blocking formats:<\/strong><\/p>\n\n<ul>\n<li><strong>Exact IP<\/strong> \u2014 <code>192.168.1.1<\/code><\/li>\n<li><strong>CIDR range<\/strong> \u2014 <code>192.168.1.0\/24<\/code> (blocks 192.168.1.0 through 192.168.1.255)<\/li>\n<li><strong>Wildcard<\/strong> \u2014 <code>10.0.0.*<\/code> or <code>172.16.*.*<\/code> (matches any value in place of *)<\/li>\n<li><strong>Comments<\/strong> \u2014 lines starting with <code>#<\/code> are ignored, useful for notes<\/li>\n<\/ul>\n\n<p><strong>WP-CLI commands:<\/strong><\/p>\n\n<ul>\n<li><code>wp eib add &lt;ip&gt;...<\/code> \u2014 Append one or more entries to the blocklist<\/li>\n<li><code>wp eib remove &lt;ip&gt;...<\/code> \u2014 Remove entries from the blocklist<\/li>\n<li><code>wp eib delete &lt;ip&gt;...<\/code> \u2014 Alias for remove<\/li>\n<li><code>wp eib list<\/code> \u2014 Show all blocked IPs and rules<\/li>\n<li><code>wp eib clear<\/code> \u2014 Clear the entire blocklist<\/li>\n<\/ul>\n\n<p>All commands that accept IPs support multiple entries in a single call. For example:<\/p>\n\n<pre><code>wp eib add 192.168.1.1 10.0.0.0\/24 172.16.0.*\nwp eib remove 192.168.1.1 10.0.0.0\/24\n<\/code><\/pre>\n\n<!--section=installation-->\n<p>Installing \"Easy IP Blocker\" can be done either by searching for \"Easy IP Blocker\" via the \"Plugins &gt; Add New\" screen in your WordPress dashboard, or by using the following steps:<\/p>\n\n<ol>\n<li>Download the plugin via WordPress.org<\/li>\n<li>Upload the ZIP file through the 'Plugins &gt; Add New &gt; Upload' screen in your WordPress dashboard<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20the%20plugin%20used%20for%3F\"><h3>What is the plugin used for?<\/h3><\/dt>\n<dd><p>Easy IP Blocker allows you to block unwanted IP addresses from accessing your WordPress site. Navigate to Settings &gt; Easy IP Block Settings, and add entries using exact IPs (192.168.1.1), CIDR ranges (10.0.0.0\/24), or wildcards (172.16.<em>.<\/em>). Use lines starting with # to add comments to your blocklist.<\/p><\/dd>\n<dt id=\"my%20site%20is%20behind%20cloudflare%20%2F%20a%20cdn%20%E2%80%94%20will%20blocking%20work%3F\"><h3>My site is behind Cloudflare \/ a CDN \u2014 will blocking work?<\/h3><\/dt>\n<dd><p>Yes. Go to Settings &gt; Easy IP Block Settings &gt; Settings tab and select your CDN or proxy from the \"IP Detection Method\" dropdown. The plugin will read the correct header to get the real visitor IP. If you are unsure, the plugin auto-detects your CDN and shows a recommendation on the Settings tab.<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22auto%20%28legacy%29%22%20ip%20detection%20method%3F\"><h3>What is the \"Auto (legacy)\" IP detection method?<\/h3><\/dt>\n<dd><p>This is the default for existing installations. It checks multiple headers in order (HTTP_CLIENT_IP, X-Forwarded-For, REMOTE_ADDR). While convenient, it is less secure because attackers can spoof headers. We recommend selecting your specific CDN or \"Direct\" if you have no proxy.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20custom%20header%3F\"><h3>Can I use a custom header?<\/h3><\/dt>\n<dd><p>Yes. Select \"Custom header\" from the IP Detection Method dropdown and enter the header name your proxy sets (e.g. X-Real-IP). This works with Nginx, HAProxy, or any non-standard proxy configuration.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>2026-05-13<\/li>\n<li>Added CDN\/proxy-aware IP detection \u2014 supports Cloudflare, Fastly, Akamai, AWS CloudFront, Sucuri, generic proxy, and custom headers<\/li>\n<li>Added auto-detection of CDN\/proxy headers with admin recommendation notice<\/li>\n<li>Added configurable IP Detection Method dropdown in a new Settings tab<\/li>\n<li>Added Custom Header Name field for non-standard proxy configurations<\/li>\n<li>Added \"IP Detection Methods Explained\" tooltip reference on the Settings tab<\/li>\n<li>Reorganized admin UI into tabbed layout \u2014 Blocklist (main) and Settings tabs<\/li>\n<li>Existing installations default to \"Auto (legacy)\" mode for backward compatibility<\/li>\n<li>Updated plugin description and FAQ<\/li>\n<li>Bumped \"Tested up to\" to WordPress 6.9<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>2026-05-12<\/li>\n<li>Version bump to WordPress 6.8 and PHP 8.4 compatibility<\/li>\n<li>Added CIDR range blocking (e.g. 192.168.1.0\/24)<\/li>\n<li>Added wildcard pattern blocking (e.g. 10.0.0.*)<\/li>\n<li>Added comment support (lines starting with #)<\/li>\n<li>Added WP-CLI commands (wp eib add\/remove\/list\/clear)<\/li>\n<li>Modernized admin settings UI<\/li>\n<li>Updated plugin assets and deployment workflow<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>2022-10-24<\/li>\n<li>Version bump to WordPress versino 6.0.3 compatibility<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>2021-08-9<\/li>\n<li>Version bump to 5.8.1<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>2020-08-10<\/li>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Quickly block unwanted IPs in your WP site with CDN\/proxy-aware IP detection","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/128782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=128782"}],"author":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/carl-alberto"}],"wp:attachment":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=128782"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=128782"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=128782"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=128782"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=128782"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=128782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}