{"id":141042,"date":"2021-05-17T06:47:47","date_gmt":"2021-05-17T06:47:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ip-location-block\/"},"modified":"2026-03-13T00:57:00","modified_gmt":"2026-03-13T00:57:00","slug":"ip-location-block","status":"publish","type":"plugin","link":"https:\/\/hat.wordpress.org\/plugins\/ip-location-block\/","author":13730437,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.8","stable_tag":"1.3.8","tested":"7.0","requires":"3.7","requires_php":"","requires_plugins":null,"header_name":"IP Location Block","header_author":"IP Location Block","header_description":"Easily setup location block based on the visitor country by using ip and asn details. Protects your site from spam, login attempts, zero-day exploits, malicious access & more.","assets_banners_color":"e0e8f0","last_updated":"2026-03-13 00:57:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/ip-location-block\/","header_author_uri":"https:\/\/iplocationblock.com\/","rating":4.6,"author_block_rating":0,"active_installs":10000,"downloads":196803,"num_ratings":33,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"DarkoG","date":"2021-05-17 07:02:11"},"1.0.1":{"tag":"1.0.1","author":"DarkoG","date":"2021-05-17 11:45:31"},"1.0.2":{"tag":"1.0.2","author":"DarkoG","date":"2021-05-18 08:29:07"},"1.0.3":{"tag":"1.0.3","author":"DarkoG","date":"2021-05-18 15:14:34"},"1.0.4":{"tag":"1.0.4","author":"DarkoG","date":"2021-07-25 12:43:50"},"1.0.5":{"tag":"1.0.5","author":"DarkoG","date":"2021-11-19 23:53:43"},"1.0.6":{"tag":"1.0.6","author":"DarkoG","date":"2021-11-20 23:12:08"},"1.0.7":{"tag":"1.0.7","author":"DarkoG","date":"2021-12-22 15:54:56"},"1.1.0":{"tag":"1.1.0","author":"DarkoG","date":"2022-05-01 22:55:25"},"1.1.1":{"tag":"1.1.1","author":"DarkoG","date":"2022-05-02 20:03:44"},"1.1.2":{"tag":"1.1.2","author":"DarkoG","date":"2022-11-25 00:04:16"},"1.1.3":{"tag":"1.1.3","author":"DarkoG","date":"2022-07-24 21:06:48"},"1.1.5":{"tag":"1.1.5","author":"DarkoG","date":"2023-07-21 22:23:44"},"1.2.0":{"tag":"1.2.0","author":"DarkoG","date":"2023-10-30 12:57:32"},"1.2.1":{"tag":"1.2.1","author":"DarkoG","date":"2023-10-31 08:01:23"},"1.2.2":{"tag":"1.2.2","author":"DarkoG","date":"2023-11-01 10:36:58"},"1.2.3":{"tag":"1.2.3","author":"DarkoG","date":"2023-11-12 07:16:19"},"1.3.0":{"tag":"1.3.0","author":"DarkoG","date":"2024-02-20 15:39:35"},"1.3.1":{"tag":"1.3.1","author":"DarkoG","date":"2024-04-02 23:18:15"},"1.3.2":{"tag":"1.3.2","author":"DarkoG","date":"2024-08-01 00:00:39"},"1.3.3":{"tag":"1.3.3","author":"DarkoG","date":"2024-09-24 15:01:01"},"1.3.4":{"tag":"1.3.4","author":"DarkoG","date":"2025-03-07 19:52:35"},"1.3.5":{"tag":"1.3.5","author":"DarkoG","date":"2025-07-20 20:21:16"},"1.3.6":{"tag":"1.3.6","author":"DarkoG","date":"2025-08-06 07:43:29"},"1.3.7":{"tag":"1.3.7","author":"DarkoG","date":"2025-11-07 22:19:04"},"1.3.8":{"tag":"1.3.8","author":"DarkoG","date":"2026-03-13 00:57:00"}},"upgrade_notice":{"":"<p>As of version 1.2.0, the plugin supports City\/State Level Matching.<\/p>"},"ratings":{"1":2,"2":1,"3":0,"4":2,"5":28},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2662027,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2662027,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":2662027,"resolution":"772x250","location":"assets","locale":""},"banner-940x304.png":{"filename":"banner-940x304.png","revision":2662027,"resolution":"940x304","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.1.0","1.1.1","1.1.2","1.1.3","1.1.5","1.2.0","1.2.1","1.2.2","1.2.3","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2532986,"resolution":"1","location":"assets","locale":""},"screenshot-10.png":{"filename":"screenshot-10.png","revision":2532986,"resolution":"10","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2532986,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2532986,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2532986,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":2532986,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":2532986,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":2532986,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":2532986,"resolution":"8","location":"assets","locale":""},"screenshot-9.png":{"filename":"screenshot-9.png","revision":2532986,"resolution":"9","location":"assets","locale":""}},"screenshots":{"1":"<strong>IP Location Plugin<\/strong> - Settings tab","2":"<strong>IP Location Plugin<\/strong> - Validation rules and behavior","3":"<strong>IP Location Plugin<\/strong> - Back-end target settings","4":"<strong>IP Location Plugin<\/strong> - Front-end target settings","5":"<strong>IP Location Plugin<\/strong> - Geolocation API settings","6":"<strong>IP Location Plugin<\/strong> - IP address cache settings","7":"<strong>IP Location Plugin<\/strong> - Statistics tab","8":"<strong>IP Location Plugin<\/strong> - Logs tab","9":"<strong>IP Location Plugin<\/strong> - Search tab","10":"<strong>IP Location Plugin<\/strong> - Attribution tab","11":"<strong>IP Location Plugin<\/strong> - Multisite list on network"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1220,3751,4124,3919,199509],"plugin_category":[49],"plugin_contributors":[82228],"plugin_business_model":[],"class_list":["post-141042","plugin","type-plugin","status-publish","hentry","plugin_tags-block","plugin_tags-country","plugin_tags-geolocation","plugin_tags-ip-address","plugin_tags-ip-geo-block","plugin_category-maps-and-location","plugin_contributors-darkog","plugin_committers-codeverve","plugin_committers-darkog"],"banners":{"banner":"https:\/\/ps.w.org\/ip-location-block\/assets\/banner-772x250.png?rev=2662027","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ip-location-block\/assets\/icon-128x128.png?rev=2662027","icon_2x":"https:\/\/ps.w.org\/ip-location-block\/assets\/icon-256x256.png?rev=2662027","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-1.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Settings tab"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-2.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Validation rules and behavior"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-3.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Back-end target settings"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-4.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Front-end target settings"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-5.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Geolocation API settings"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-6.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - IP address cache settings"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-7.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Statistics tab"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-8.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Logs tab"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-9.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Search tab"},{"src":"https:\/\/ps.w.org\/ip-location-block\/assets\/screenshot-10.png?rev=2532986","caption":"<strong>IP Location Plugin<\/strong> - Attribution tab"}],"raw_content":"<!--section=description-->\n<p>IP Location Block plugin that allows you to block access to your site based on the visitor location while also keeping your site safe from malicious attacks. The plugin brings a smart and powerful protection methods such as \"<strong>WP Metadata Exploit Protection<\/strong>\".<\/p>\n\n<p>Combined with those methods and IP address geolocation, you'll be surprised to find a bunch of malicious or undesirable access blocked in the logs of this plugin after several days of installation.<\/p>\n\n<p><strong>Note:<\/strong> This plugin is based on the now abandoned \"IP Geo Block\" plugin by tokkonopapa. I fixed various issues and improved the overall codebase.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><p><strong>Native Geo-Location Provider<\/strong>\nIP Location Block provides <a href=\"https:\/\/iplocationblock.com\/codex\/native-geo-location-provider\/?utm_source=plugin&amp;utm_medium=wporgpage&amp;utm_campaign=readme\">Native Geo-Location Provider<\/a> that is faster, more secure and provides the needed <strong>precision<\/strong> for matching <strong>CITY<\/strong> and <strong>STATE<\/strong> besides the standard COUNTRY matching.<\/p><\/li>\n<li><p><strong>Privacy by design:<\/strong>\nIP address is always encrypted on recording in logs\/cache. Moreover, it can be anonymized and restricted on sending to the 3rd parties such as geolocation APIs or whois service.<\/p><\/li>\n<li><p><strong>Immigration control:<\/strong>\nAccess to the basic and important entrances into back-end such as <code>wp-comments-post.php<\/code>, <code>xmlrpc.php<\/code>, <code>wp-login.php<\/code>, <code>wp-signup.php<\/code>, <code>wp-admin\/admin.php<\/code>, <code>wp-admin\/admin-ajax.php<\/code>, <code>wp-admin\/admin-post.php<\/code> will be validated by means of a country code based on IP address. It allows you to configure either whitelist or blacklist to <a href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2#Officially_assigned_code_elements\" title=\"ISO 3166-1 alpha-2 - Wikipedia\">specify the countires<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Classless_Inter-Domain_Routing\" title=\"Classless Inter-Domain Routing - Wikipedia\">CIDR notation<\/a> for a range of IP addresses and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Autonomous_system_(Internet)\" title=\"Autonomous system (Internet) - Wikipedia\">AS number<\/a> for a group of IP networks.<\/p><\/li>\n<li><p><strong>Guard against login attempts:<\/strong>\nIn order to prevent hacking through the login form and XML-RPC by brute-force and the reverse-brute-force attacks, the number of login attempts will be limited per IP address even from the permitted countries.<\/p><\/li>\n<li><p><strong>Minimize server load against brute-force attacks:<\/strong>\nYou can configure this plugin as a <a href=\"https:\/\/codex.wordpress.org\/Must_Use_Plugins\" title=\"Must Use Plugins \u00ab WordPress Codex\">Must Use Plugins<\/a> so that this plugin can be loaded prior to regular plugins. It can massively <a href=\"https:\/\/iplocationblock.com\/codex\/validation-timing\/\" title=\"Validation timing | IP Location Block\">reduce the load on server<\/a>.<\/p><\/li>\n<li><p><strong>Prevent malicious down\/uploading:<\/strong>\nA malicious request such as exposing <code>wp-config.php<\/code> or uploading malwares via vulnerable plugins\/themes can be blocked.<\/p><\/li>\n<li><p><strong>Block badly-behaved bots and crawlers:<\/strong>\nA simple logic may help to reduce the number of rogue bots and crawlers scraping your site.<\/p><\/li>\n<li><p><strong>Support of BuddyPress and bbPress:<\/strong>\nYou can configure this plugin so that a registered user can login as a membership from anywhere, while a request such as a new user registration, lost password, creating a new topic and subscribing comment can be blocked by country. It is suitable for <a href=\"https:\/\/wordpress.org\/plugins\/buddypress\/\" title=\"BuddyPress \u2014 WordPress Plugins\">BuddyPress<\/a> and <a href=\"https:\/\/wordpress.org\/plugins\/bbpress\/\" title=\"WordPress \u203a bbPress \u00ab WordPress Plugins\">bbPress<\/a> to help reducing spams.<\/p><\/li>\n<li><p><strong>Referrer suppressor for external links:<\/strong>\nWhen you click an external hyperlink on admin screens, http referrer will be eliminated to hide a footprint of your site.<\/p><\/li>\n<li><p><strong>Multiple source of IP Geolocation databases:<\/strong>\nBesides the <a href=\"https:\/\/iplocationblock.com\/codex\/native-geo-location-provider\/?utm_source=plugin&amp;utm_medium=wporgpage&amp;utm_campaign=readme\">Native Geo-Location provider<\/a>, this plugin supports <a href=\"https:\/\/www.maxmind.com\" title=\"MaxMind - IP Geolocation and Online Fraud Prevention\">MaxMind GeoLite2 free databases<\/a> and <a href=\"https:\/\/www.ip2location.com\/\" title=\"IP Address Geolocation to Identify Website Visitor&apos;s Geographical Location\">IP2Location LITE databases<\/a>. Also free Geolocation REST APIs and whois information can be available for audit purposes.\nFather more, <a href=\"https:\/\/iplocationblock.com\/cloudflare-cloudfront-api-class-library\/\" title=\"CloudFlare &amp; CloudFront API class library | IP Location Block\">dedicated API class libraries<\/a> can be installed for CloudFlare and CloudFront as a reverse proxy service.<\/p><\/li>\n<li><p><strong>Customizing response:<\/strong>\nHTTP response code can be selectable as <code>403 Forbidden<\/code> to deny access pages, <code>404 Not Found<\/code> to hide pages or even <code>200 OK<\/code> to redirect to the top page.\nYou can also have a human friendly page (like <code>404.php<\/code>) in your parent\/child theme template directory to fit your site design.<\/p><\/li>\n<li><p><strong>Validation logs:<\/strong>\nValidation logs for useful information to audit attack patterns can be manageable.<\/p><\/li>\n<li><p><strong>Cooperation with full spec security plugin:<\/strong>\nThis plugin is lite enough to be able to cooperate with other full spec security plugin such as <a href=\"https:\/\/wordpress.org\/plugins\/wordfence\/\" title=\"Wordfence Security \u2014 WordPress Plugins\">Wordfence Security<\/a>. See <a href=\"https:\/\/iplocationblock.com\/codex\/page-speed-performance\/\" title=\"Page speed performance | IP Location Block\">this report<\/a> about page speed performance.<\/p><\/li>\n<li><p><strong>Extendability:<\/strong>\nYou can customize the behavior of this plugin via <code>add_filter()<\/code> with <a href=\"https:\/\/iplocationblock.com\/codex\/\" title=\"Codex | IP Location Block\">pre-defined filter hook<\/a>. See various use cases in <a href=\"https:\/\/iplocationblock.com\/codex\/example-use-cases-for-the-developer-hooks\/\">samples.php<\/a> bundled within this package.\nYou can also get the extension <a href=\"https:\/\/github.com\/ddur\/WordPress-IP-Geo-Allow\" title=\"GitHub - ddur\/WordPress-IP-Geo-Allow: WordPress Plugin Exension for WordPress-IP-Geo-Block Plugin\">IP Geo Allow<\/a> by <a href=\"https:\/\/github.com\/ddur\" title=\"ddur (Dragan) - GitHub\">Dragan<\/a>. It makes admin screens strictly private with more flexible way than specifying IP addresses.<\/p><\/li>\n<li><p><strong>Self blocking prevention and easy rescue:<\/strong>\nWebsite owners do not prefer themselves to be blocked. This plugin prevents such a sad thing unless you force it. And futhermore, if such a situation occurs, you can <a href=\"https:\/\/iplocationblock.com\/codex\/what-should-i-do-when-im-locked-out\/\" title=\"What should I do when I&apos;m locked out? | IP Location Block\">rescue yourself<\/a> easily.<\/p><\/li>\n<li><p><strong>Clean uninstallation:<\/strong>\nNothing is left in your precious mySQL database after uninstallation. So you can feel free to install and activate to make a trial of this plugin's functionality.<\/p><\/li>\n<\/ul>\n\n<h4>Documentation<\/h4>\n\n<p>Documentation and more information can always be found on our <a href=\"https:\/\/iplocationblock.com\/\" title=\"IP Location Block\">plugin website<\/a>.<\/p>\n\n<h4>Attribution<\/h4>\n\n<p>This package includes GeoLite2 library distributed by MaxMind, available from <a href=\"https:\/\/www.maxmind.com\" title=\"MaxMind - IP Geolocation and Online Fraud Prevention\">MaxMind<\/a>, and also includes IP2Location open source libraries available from <a href=\"https:\/\/www.ip2location.com\" title=\"IP Address Geolocation to Identify Website Visitor&apos;s Geographical Location\">IP2Location<\/a>.<\/p>\n\n<p>Also thanks for providing the following services and REST APIs for free.<\/p>\n\n<ul>\n<li><a href=\"http:\/\/geoiplookup.net\/\" title=\"What Is My IP Address | GeoIP Lookup\">http:\/\/geoiplookup.net\/<\/a> (IPv4, IPv6 \/ free)<\/li>\n<li><a href=\"https:\/\/ipinfo.io\/\" title=\"IP Address API and Data Solutions\">https:\/\/ipinfo.io\/<\/a> (IPv4, IPv6 \/ free)<\/li>\n<li><a href=\"https:\/\/ipapi.com\/\" title=\"ipapi - IP Address Lookup and Geolocation API\">https:\/\/ipapi.com\/<\/a> (IPv4, IPv6 \/ free, need API key)<\/li>\n<li><a href=\"https:\/\/ipstack.com\/\" title=\"ipstack - Free IP Geolocation API\">https:\/\/ipstack.com\/<\/a> (IPv4, IPv6 \/ free, need API key)<\/li>\n<li><a href=\"https:\/\/ipinfodb.com\/\" title=\"Free IP Geolocation Tools and API| IPInfoDB\">https:\/\/ipinfodb.com\/<\/a> (IPv4, IPv6 \/ free, need API key)<\/li>\n<\/ul>\n\n<h4>Development<\/h4>\n\n<p>Development of this plugin happens at <a href=\"https:\/\/github.com\/gdarko\/ip-location-block\" title=\"gdarko\/ip-location-block - GitHub\">IP Location Block - GitHub<\/a><\/p>\n\n<p>All contributions will always be welcome.<\/p>\n\n<h4>Known issues<\/h4>\n\n<ul>\n<li>From <a href=\"https:\/\/make.wordpress.org\/core\/2016\/03\/09\/comment-changes-in-wordpress-4-5\/\" title=\"Comment Changes in WordPress 4.5 \u2013 Make WordPress Core\">WordPress 4.5<\/a>, <code>rel=nofollow<\/code> had no longer be attached to the links in <code>comment_content<\/code>. This change prevents to block \"<a href=\"https:\/\/www.owasp.org\/index.php\/Server_Side_Request_Forgery\" title=\"Server Side Request Forgery - OWASP\">Server Side Request Forgeries<\/a>\" (not Cross Site but a malicious internal link in the comment field).<\/li>\n<li><a href=\"https:\/\/apps.wordpress.com\/mobile\/\" title=\"WordPress.com Apps - Mobile Apps\">WordPress.com Mobile App<\/a> can't execute image uploading because of its own authentication system via XMLRPC.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Using The WordPress Dashboard<\/h4>\n\n<ol>\n<li>Navigate to the 'Add New' in the plugins dashboard<\/li>\n<li>Search for 'IP Location Block'<\/li>\n<li>Click 'Install Now'<\/li>\n<li>Activate the plugin on the Plugin dashboard<\/li>\n<li>Stay cool for a while and go to 'Settings' &raquo; 'IP Location Block'<\/li>\n<li>Try 'Best for Back-end' button for easy setup at the bottom of this plugin's setting page.<\/li>\n<\/ol>\n\n<p>Please refer to <a href=\"https:\/\/iplocationblock.com\/codex\/\" title=\"Codex | IP Location Block\">the document<\/a> for your best setup.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20site%20using%20this%20plugin%20comply%20with%20gdpr%3F\"><h3>Does the site using this plugin comply with GDPR?<\/h3><\/dt>\n<dd><p>This plugin is designed based on the principle of \"Privacy by design\" so that you can compliantly run it to GDPR. As guarding against personal data breach, IP addresses in this plugin are encrypted and also can be anonymized by default. It also provides some functions not only to manually erase them but also to automatically remove them when those are exceeded a certain amount\/time.<\/p>\n\n<p>However, these are the part of GDPR requirements and do not guarantee that the site is compliant with GDPR. Refer to <a href=\"https:\/\/iplocationblock.com\/changelog\/0-3-0-11-release-note\/\">3.0.11 release note<\/a> for details.<\/p><\/dd>\n<dt id=\"is%20there%20a%20way%20to%20migrate%20from%20ip%20geo%20block%22\"><h3>Is there a way to migrate from IP Geo Block\"<\/h3><\/dt>\n<dd><p>Yes, if \"IP Geo Block\" settings are detected, you will see migrate option in the Settings last in \"Plugin Settings\" section. This will copy the settings from \"IP Geo Block\" only.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20multisite%3F\"><h3>Does this plugin support multisite?<\/h3><\/dt>\n<dd><p>Yes. You can synchronize the settings with all the sites on the network when you activate on network and enable \"<strong>Network wide settings<\/strong>\" in \"<strong>Plugin settings<\/strong>\" section.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20allows%20blocking%20us%20states%2C%20country%20regions%20or%20cities%3F\"><h3>Does this plugin allows blocking US States, Country Regions or Cities?<\/h3><\/dt>\n<dd><p>Yes. Please view <a href=\"https:\/\/iplocationblock.com\/codex\/city-state-level-matching\/\">City\/State Level Matching<\/a> for more details.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20works%20well%20with%20caching%3F\"><h3>Does this plugin works well with caching?<\/h3><\/dt>\n<dd><p>The short answer is <strong>YES<\/strong>, especially for the purpose of security e.g. blocking malicious access both on the back-end and on the front-end.<\/p>\n\n<p>You can find the long answer and the compatibility list of cache plugins at \"<a href=\"https:\/\/iplocationblock.com\/codex\/compatibility-with-cache-plugins\/\" title=\"Compatibility with cache plugins | IP Location Block\">Compatibility with cache plugins<\/a>\".<\/p><\/dd>\n<dt id=\"i%20still%20have%20access%20from%20blacklisted%20country.%20does%20it%20work%20correctly%3F\"><h3>I still have access from blacklisted country. Does it work correctly?<\/h3><\/dt>\n<dd><p>Absolutely, YES.<\/p>\n\n<p>Sometimes, a WordFence Security user would report this type of claim when he\/she found some accesses in its Live traffic view. But please don't worry. Before WordPress runs, WordFence cleverly filters out malicious requests to your site using <a href=\"https:\/\/php.net\/manual\/en\/ini.core.php#ini.auto-prepend-file\" title=\"PHP: Description of core php.ini directives - Manual\">auto_prepend_file<\/a> directive to include PHP based Web Application Firewall. Then this plugin validates the rest of the requests that pass over Wordfence because those were not in WAF rules.<\/p>\n\n<p>It would also possibly be caused by the accuracy of country code in the geolocation databases. Actually, there is a case that a same IP address has different country code.<\/p>\n\n<p>For more detail, please refer to \"<a href=\"https:\/\/iplocationblock.com\/codex\/i-still-have-access-from-blacklisted-country\/\" title=\"I still have access from blacklisted country. | IP Location Block\">I still have access from blacklisted country.<\/a>\".<\/p><\/dd>\n<dt id=\"how%20can%20i%20test%20this%20plugin%20works%3F\"><h3>How can I test this plugin works?<\/h3><\/dt>\n<dd><p>The easiest way is to use <a href=\"https:\/\/www.google.com\/search?q=free+proxy+browser+addon\" title=\"free proxy browser addon - Google Search\">free proxy browser addon<\/a>.<\/p>\n\n<p>Another one is to use <a href=\"https:\/\/www.google.com\/search?q=browser+add+on+modify+http+header\" title=\"browser add on modify http header - Google Search\">http header browser addon<\/a>.<\/p>\n\n<p>You can add an IP address to the <code>X-Forwarded-For<\/code> header to emulate the access behind the proxy. In this case, you should add <code>HTTP_X_FORWARDED_FOR<\/code> into the \"<strong>$_SERVER keys for extra IPs<\/strong>\" on \"<strong>Settings<\/strong>\" tab.<\/p>\n\n<p>See more details at \"<a href=\"https:\/\/iplocationblock.com\/?codex-category=test-prevention-of-attacks\" title=\"Codex | IP Location Block\">How to test prevention of attacks<\/a>\".<\/p><\/dd>\n<dt id=\"i%27m%20locked%20out%21%20what%20shall%20i%20do%3F\"><h3>I'm locked out! What shall I do?<\/h3><\/dt>\n<dd><p>Please find the solution in <a href=\"https:\/\/iplocationblock.com\/codex\/quick-recovery-from-blocking-on-login-page\/\" title=\"Quick recovery from blocking on your login page | IP Location Block\">Quick recovery from blocking on your login page<\/a> at first.<\/p>\n\n<p>You can also find another solution by editing \"<strong>Emergent Functionality<\/strong>\" code section near the bottom of <code>ip-location-block.php<\/code>. This code block can be activated by replacing <code>\/*<\/code> (opening multi-line comment) at the top of the line to <code>\/\/<\/code> (single line comment), or <code>*<\/code> at the end of the line to <code>*\/<\/code> (closing multi-line comment).<\/p>\n\n<pre><code>\/**\n * Invalidate blocking behavior in case yourself is locked out.\n *\n * How to use: Activate the following code and upload this file via FTP.\n *\/\n\/* -- ADD '\/' TO THE TOP OR END OF THIS LINE TO ACTIVATE THE FOLLOWINGS -- *\/\nfunction ip_location_block_emergency( $validate, $settings ) {\n    $validate['result'] = 'passed';\n    return $validate;\n}\nadd_filter( 'ip-location-block-login', 'ip_location_block_emergency', 1, 2 );\nadd_filter( 'ip-location-block-admin', 'ip_location_block_emergency', 1, 2 );\n\/\/ *\/\n<\/code><\/pre>\n\n<p>Please not that you have to use an <a href=\"https:\/\/codex.wordpress.org\/Editing_Files#Using_Text_Editors\" title=\"Editing Files \u00ab WordPress Codex\">appropriate editor<\/a>.<\/p>\n\n<p>After saving and uploading it to <code>\/wp-content\/plugins\/ip-location-block\/<\/code> on your server via FTP, you become to be able to login again as an admin.<\/p>\n\n<p>Remember that you should upload the original one after re-configuration to deactivate this feature.<\/p>\n\n<p><a href=\"https:\/\/iplocationblock.com\/codex\/what-should-i-do-when-im-locked-out\/\" title=\"What should I do when I&apos;m locked out? | IP Location Block\">This document<\/a> can also help you.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20turn%20on%20all%20the%20selection%20to%20enhance%20security%3F\"><h3>Do I have to turn on all the selection to enhance security?<\/h3><\/dt>\n<dd><p>Yes. Roughly speaking, the strategy of this plugin has been constructed as follows:<\/p>\n\n<ul>\n<li><p><strong>Block by country<\/strong>\nIt blocks malicious requests from outside your country.<\/p><\/li>\n<li><p><strong>Force to load WP core<\/strong>\nIt blocks the request which has not been covered in the above two.<\/p><\/li>\n<li><p><strong>Bad signatures in query<\/strong>\nIt blocks the request which has not been covered in the above three.<\/p><\/li>\n<\/ul>\n\n<p>Please try \"<strong>Best for Back-end<\/strong>\" button at the bottom of this plugin's setting page for easy setup. And also see more details in \"<a href=\"https:\/\/iplocationblock.com\/codex\/the-best-practice-for-target-settings\/\" title=\"The best practice of target settings | IP Location Block\">The best practice of target settings<\/a>\".<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20validate%20all%20the%20requests%3F\"><h3>Does this plugin validate all the requests?<\/h3><\/dt>\n<dd><p>Unfortunately, no. This plugin can't handle the requests that are not parsed by WordPress. In other words, a standalone file (PHP, CGI or something executable) that is unrelated to WordPress can't be validated by this plugin even if it is in the WordPress install directory.<\/p>\n\n<p>But there's exceptions: When you enable \"<strong>Force to load WP core<\/strong>\" for <strong>Plugins area<\/strong> or <strong>Themes area<\/strong>, a standalone PHP file becomes to be able to be blocked. Sometimes this kind of file has some vulnerabilities. This function protects your site against such a case.<\/p><\/dd>\n<dt id=\"how%20to%20resolve%20%22sorry%2C%20your%20request%20cannot%20be%20accepted.%22%3F\"><h3>How to resolve \"Sorry, your request cannot be accepted.\"?<\/h3><\/dt>\n<dd><p>If you encounter this message, please refer to <a href=\"https:\/\/iplocationblock.com\/codex\/why-sorry-your-request-cannot-be-accepted\/\" title=\"Why \u201cSorry, your request cannot be accepted\u201d ? | IP Location Block\">this document<\/a> to resolve your blocking issue.<\/p>\n\n<p>If you can't solve your issue, please let me know about it on the <a href=\"https:\/\/wordpress.org\/support\/plugin\/ip-location-block\/\" title=\"View: Plugin Support \u00ab  WordPress.org Forums\">support forum<\/a>. Your logs in this plugin and \"<strong>Installation information<\/strong>\" at \"<strong>Plugin settings<\/strong>\" will be a great help to resolve the issue.<\/p><\/dd>\n<dt id=\"how%20to%20resolve%20issues%20related%20to%20ajax-requests%20being%20blocked%20in%20admin%3F\"><h3>How to resolve issues related to ajax-requests being blocked in admin?<\/h3><\/dt>\n<dd><p>Check the \"Admin ajax\/post\" option in \"Back-end target settings\", either disable it or whitelist the required Ajax actions.<\/p><\/dd>\n<dt id=\"how%20can%20i%20fix%20%22unable%20to%20write%22%20error%3F\"><h3>How can I fix \"Unable to write\" error?<\/h3><\/dt>\n<dd><p>When you enable \"<strong>Force to load WP core<\/strong>\" options, this plugin will try to configure <code>.htaccess<\/code> in your <code>\/wp-content\/plugins\/<\/code> and <code>\/wp-content\/themes\/<\/code> directory in order to protect your site against the malicious attacks to the <a href=\"https:\/\/iplocationblock.com\/prevent-exposure-of-wp-config-php\/\" title=\"Prevent exposure of wp-config.php | IP Location Block\">OMG plugins and themes<\/a>.<\/p>\n\n<p>But some servers doesn't give read \/ write permission against <code>.htaccess<\/code> to WordPress. In this case, you can configure <code>.htaccess<\/code> files by your own hand instead of enabling \"<strong>Force to load WP core<\/strong>\" options.<\/p>\n\n<p>Please refer to \"<a href=\"https:\/\/iplocationblock.com\/codex\/how-can-i-fix-permission-troubles\/\" title=\"How can I fix permission troubles? | IP Location Block\">How can I fix permission troubles?<\/a>\" in order to fix this error.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.8<\/h4>\n\n<p><em>Release Date - 13 Mar 2026<\/em><\/p>\n\n<ul>\n<li>Fix: PHP Warnings<\/li>\n<li>Fix: Deprecated jQuery calls<\/li>\n<li>Add: Kinsta\/WPEngine<\/li>\n<li>Deprecate WP-ZEP (Zero-Day Prevention) to be removed in 1.4.0<\/li>\n<li>Test with WordPress 7.0<\/li>\n<\/ul>\n\n<h4>1.3.7<\/h4>\n\n<p><em>Release Date - 07 Nov 2025<\/em><\/p>\n\n<ul>\n<li>New: Add instructions to migrate to latest IP Location Block platform<\/li>\n<li>New: Test with latest WordPress<\/li>\n<\/ul>\n\n<h4>1.3.6<\/h4>\n\n<p><em>Release Date - 06 Aug 2025<\/em><\/p>\n\n<ul>\n<li>Fix: Uncaught ReferenceError: IP_LOCATION_BLOCK_AUTH is not defined<\/li>\n<li>Fix: IP_Location_Block::is_user_logged_in() in certain cases<\/li>\n<li>Fix: Plugins run if HASH constants are not defined<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<p><em>Release Date - 20 Jul 2025<\/em><\/p>\n\n<ul>\n<li>Fix PHP warnings related to string translation<\/li>\n<li>Fix PHP Fatal error related to undefined constants (eg. NONCE_KEY)<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<p><em>Release Date - 07 Mar 2025<\/em><\/p>\n\n<ul>\n<li>Fix PHP warnings<\/li>\n<li>Test with PHP 8.4<\/li>\n<li>Test with WordPress 6.7 and 6.8-beta1<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<p><em>Release Date - 24 Sep 2024<\/em><\/p>\n\n<ul>\n<li>Fix admin post\/ajax whitelisting<\/li>\n<li>Fix PHP deprecation warnings<\/li>\n<li>Fix PHP array access warnings<\/li>\n<li>Fix support for Divi<\/li>\n<li>Whitelist additional WordPress ajax actions by default<\/li>\n<li>Remove unnecessary\/unused files within the maxmind php extension<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<p><em>Release Date - 01 Aug 2024<\/em><\/p>\n\n<ul>\n<li>Fix deprecation warning in PHP 8.2+<\/li>\n<li>Test with WordPress 6.6<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<p><em>Release Date - 03 Apr 2024<\/em><\/p>\n\n<ul>\n<li>Drop GeoIPLookup API because - the service ceased operations.<\/li>\n<li>Test with WordPress 6.5<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<p><em>Release Date - 20 Feb 2024<\/em><\/p>\n\n<ul>\n<li>Fix issue when \"Front-end rules &amp; behavior\" matching rule is blacklist, response status is 30X and redirect URL is empty. It does not redirect.<\/li>\n<li>Set the default blacklist redirect URL to blocked.iplocationblock.com.<\/li>\n<li>Add status box in the settings screens that tells account quota, current running mode, etc.<\/li>\n<li>Improve wording at few places that caused confusion.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<p><em>Release Date - 12 Nov 2023<\/em><\/p>\n\n<ul>\n<li>Prefix the css code to fix conflicts with other plugins (Woo \/ Super Cache, etc)<\/li>\n<li>Add more sophisticated warnings when blocking rules are misconfigured or ASN is in use but the current enabled providers does not support ASN.<\/li>\n<li>Exclude Divi \"save-epanel\" ajax action from ZEP<\/li>\n<li>Fix warning triggered by the cron script<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<p><em>Release Date - 01 Nov 2023<\/em><\/p>\n\n<ul>\n<li>Fix issue related to log and stats display<\/li>\n<li>Fix issue that triggered alert on non-admin users (Editor and other)<\/li>\n<li>Add additional two columns for CITY and STATE to Logs screen when using \"IP Location Block\" provider<\/li>\n<li>Fix warnings when downloading Geolite2 DB<\/li>\n<li>Other UI Improvements<\/li>\n<li>Various Codebase improvements<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<p><em>Release Date - 31 Oct 2023<\/em><\/p>\n\n<ul>\n<li>Fix SQLite logging related errors<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<p><em>Release Date - 30 Oct 2023<\/em><\/p>\n\n<ul>\n<li>Precision blocking by city\/state support via the native IP Location Block provider<\/li>\n<li>Fixes various PHP 8.2 warnings reported on Github &amp; forums<\/li>\n<li>Codebase improvements related to external API providers<\/li>\n<li>Test with WordPress 6.4<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<p><em>Release Date - 28 May 2023<\/em><\/p>\n\n<ul>\n<li>Deploy procedure hotfix<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<p><em>Release Date - 28 May 2023<\/em><\/p>\n\n<ul>\n<li>Codebase improvements<\/li>\n<li>Drop the IP-API.com for now until we refactor the settings and make it possible to support apis that can be used with and without key.<\/li>\n<li>Fix array to string conversion when using the IPInfoDB provider<\/li>\n<li>Refactor the search tab backend procedure<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<p><em>Release Date - 24 Jul 2022<\/em><\/p>\n\n<ul>\n<li>Re-write the download_zip procedure to improve the external ip database download<\/li>\n<li>Improved logged-in user detection when validation timing is enabled, fixes blocking issues in admin, undefined constants, etc.<\/li>\n<li>Disable restrict_api by default so the external APIs will be enabled by default<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<p><em>Release Date - 03 May 2022<\/em><\/p>\n\n<ul>\n<li>Fix issues with downloading local databases<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<p><em>Release Date - 02 May 2022<\/em><\/p>\n\n<ul>\n<li>Fix fatal error caused by removed constant still in use<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<p><em>Release Date - 01 May 2022<\/em><\/p>\n\n<ul>\n<li>Introducing premium <a href=\"https:\/\/iplocationblock.com\/introducing-geolocation-api\/\">IP Location Block REST API<\/a><\/li>\n<li>Introduced new design for the provider table in Settings<\/li>\n<li>Make action and filter names readable by IDEs<\/li>\n<li>Fix a bug that prevented uninstalling the plugin<\/li>\n<li>Fix various warnings triggered in PHP8+<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<p><em>Release Date - 21 Dec 2021<\/em><\/p>\n\n<ul>\n<li>Fix IPv6.php - add compatibility with PHP7.4+<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<p><em>Release Date - 21 Nov 2021<\/em><\/p>\n\n<ul>\n<li>Fixes broken plugin admin settings \/ stats pages<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<p><em>Release Date - 20 Nov 2021<\/em><\/p>\n\n<ul>\n<li>Fix 307 Response Redirect loop<\/li>\n<li>Fix wrong cron info in admin settings<\/li>\n<li>Fix Undefined array key warnings in PHP8<\/li>\n<li>FIx undefined IP_LOCATION_BLOCK_AUTH in some environments.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<p><em>Release Date - 08 Jun 2021<\/em><\/p>\n\n<ul>\n<li>Fix bugs related to the asn blocking feature<\/li>\n<li>Trigger re-download of the asn database once the ASN feature is enabled via settings<\/li>\n<li>Improved migration from legacy process, unset unused settings<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<p><em>Release Date - 18 May 2021<\/em><\/p>\n\n<ul>\n<li>Add \"Migrate from IP Geo Block\" option if IP Geo Block settings are detected. This will copy the IP Geo Block settings.<\/li>\n<li>Replaced the deprecated jQuery.trim() calls with String.trim()<\/li>\n<li>Fix error when deleting the Emergency link using the \"Delete current link\" button.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<p><em>Release Date - 18 May 2021<\/em><\/p>\n\n<ul>\n<li>Fix mu-plugins option<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<p><em>Release Date - 17 May 2021<\/em><\/p>\n\n<ul>\n<li>Drop ipdata.co API<\/li>\n<li>Fixed the search tool<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p><em>Release Date - 17 May 2021<\/em><\/p>\n\n<ul>\n<li>Added PHP8 compatibility<\/li>\n<li>Added support for Maxmind GeoLite2 database with api key<\/li>\n<li>Replaced Google Maps with OSM\/Leaflet<\/li>\n<li>Updated DNS2 Library to support PHP8<\/li>\n<li>Fixed IP2Location provider errors. Update to the latest version<\/li>\n<li>Fixed various errors caught in error logs triggered in the newer PHP versions<\/li>\n<li>Fixed the ipinfo.io API<\/li>\n<li>Fixed the ipdata.co API<\/li>\n<\/ul>","raw_excerpt":"Easily block visitors by country, state or ISP provider. Also, protects your site from spam, login attempts, malicious access &amp; more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/141042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=141042"}],"author":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/darkog"}],"wp:attachment":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=141042"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=141042"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=141042"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=141042"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=141042"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=141042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}