Plugin Directory

iQ Block Country

Block visitors from countries you don't want on your website. Based on which country your visitor is from.


  • Bugfix: Check if MaxMind databases actually exist.
  • New: Unzip MaxMind database(s) if gzip file is found.
  • New: Block post types
  • New: Added option to select if you want to block your search page.
  • New: When (re)activating the plugin it now adds the IP address of the person activating the plugin to the backend whitelist if the whitelist is currently empty.


  • Changed working directory for the GeoIP database to /wp-content/uploads


  • Due to a conflict of the license where WordPress is released under and the license the MaxMind databases are released under I was forced to remove all auto downloads of the GeoIP databases. You now have to manually download the databases and upload them yourself.
  • Added Webence GeoIP API lookup. See http://geoip.webence.nl/ for more information about this API.


  • New: Accessibility option. You can now choose if you want the country default selectbox or an normal selectbox.
  • New: New button to empty the logging database..
  • New: You can now set the option to not log the ip addresses to the database. This does not influence the blocking process only the logging process. This can be handy if the laws in your country do not permit you to log this information or if you choose not to log this information


  • Bugfix: You can now set an option to buffer the output of the iQ Block Country plugin. If you use for instance NextGen Gallery you should not set this option as it will break uploading pictures to your gallery.
  • Bugfix: Last time GeoIP databases were downloaded was wrong.
  • Bugfix: If you configured auto-update of the GeoIP databases the tools tab showed that you did not configure auto update.
  • Added check for HTTP_X_TM_REMOTE_ADDR to get real ip address of T-Mobile users.
  • Added Twitter, Bitly, Cliqz and TinEye to the search engines list.
  • New: No longer blocks category pages of categories you have not blocked.
  • Bugfix: Added check if HTTP_USER_AGENT is set.


  • Bugfix: The plugin did not recognise the login page when installed to a subdirectory.
  • New: You can configure if it auto updates the GeoIP Database. Upon request of those people who have the paid database of MaxMind.
  • Added Facebook and MSN to list of search engines.
  • Changed the version of the geoip.inc file to the version of https://github.com/daigo75/geoip-api-php


  • Bugfix on setting defaults when they values already existed.
  • You can now allow search engines access to your country even if they come from countries that you want to block.


  • Bugfix on the backend blacklist / whitelist


  • Added select box on how many rows to display on the logging tab
  • Redirect blocked users to a specific page instead of displaying the block message.
  • Added blacklist and whitelist of IP addresses to the backend.
  • Adjusted some text
  • Minor bugfixes


  • Small fixes
  • WP 3.9 compatability issue fixed


  • Bugfix release due to faulty v1.1.8 release. My Apologies.


  • Smashed a bug where the homepage was unprotected due to missing check.


  • Added Russian (ru_RU) translation by Maxim
  • Added Serbo-Croatian (sr_RU) translation by Borisa Djuraskovic (Webostinghub)
  • Changed the logging table a bit.


  • Added to ban categories. This works the same way as blocking pages (By request of FVCS)
  • Changed the admin page layout. Added tabs for frontend and backend blocking to make it look less cluttered
  • Added optional tracking to the plugin. This is an experiment to see if building a database of IP addresses that try to login to the backend is viable.
  • Upon first activation the plugin now fills the backend block list with all countries except the country that is currently used to activate.
  • Added IP checking in header HTTP_CLIENT_IP and HTTP_X_REAL_IP


  • Statistics required wp-config.php in a specific place bug smashed.


  • Added import/export function.
  • Minor bugs solved


  • Fixed error that when using the option to block individual pages all visitors would be blocked. (Thanks to apostlepoe for reporting)


  • Fixed localization error. (Thanks to Lisa for reporting)


  • You can now choose to block individual pages. Leaving other pages open for visitors from blocked countries. You can for instance use this feature to block countries from visiting specific pages due to content rights etc.
  • Source now supports localization. Included is the English and Dutch language. I'd be happy to include other translations if anyone can supply those to me.


  • Added statistics to the plugin.
  • You can view the last 15 hosts that were blocked including the url they visited.
  • You can view the top 15 of countries that were blocked in the past 30 days.
  • You can view the top 15 of hosts that were blocked in the past 30 days.
  • You can view the top URL's that were most blocked in the past 30 days.


  • The block message size box is now larger so there is more room for styling the message.
  • Whitelist of IPvX IP addresses for the frontend. Use a semicolon to separate IP addresses.
  • Blacklist of IPvX IP addresses for the frontend. Use a semicolon to separate IP addresses.


  • You are now able to lookup which country belongs to an ip address in the backend. If the IP address is from a country that is banned this will be displayed.
  • New way of selecting countries you wish to block upon multiple request. The selection box is now in sort of facebook style.
  • Choose if you want to sent out headers or not. For people who get "Cannot modify header information - headers already sent" errors.
  • Counter added for how many visitors where blocked from frontend and backend website.
  • Code cleanup


  • You can select different countries to block from your frontend website and your backend website.
  • Made it more visible what IP you are logged in from, which country it is from and that you should not block your own country from your backend site.
  • Minor changes to the settings page.
  • A bit of code cleanup for future improvements.


  • Bugfix release. The backend was not blocked in multi-site (network) setup.


  • Automatically download new GeoIP updates from Maxmind. This is checked each time you login on the WordPress admin site (Code by williewonka)
  • Also block login attempts to the wp-admin site (Code by williewonka)
  • Send no cache headers with the output.


  • The plugin now detects if your IP address is blocked by MaxMind when downloading the GeoIP database and if so has an adjusted error message.
  • New option: New checkbox to allow you to not block users that are logged in despite if they come from a blocked country. Use wisely :-)
  • First version of IPv6 support.
  • New Download IPv6 database button. Press "Download new GeoIP IPv6 database" if you need IPv6 support.


  • Fixed error when not being able to download the GeoIP.dat.gz file from Maxmind it would not display the correct path.


  • Corrected php opening tags (Reported by Phil from msiii.net)
  • Sorted list of countries (As suggested by Phil from msiii.net)
  • You can now customize the message that users get when they are blocked.
  • We moved from http://www.trinyx.nl/ to http://www.redeo.nl/. Please update your links :-)


  • Added a button to download the new GeoIP database.


  • FAQ updated
  • Try to make sure this plugin is loaded first to avoid "headers already sent" trouble.


  • PHP 5.2 or higher required
  • Fixed an include bug when other plugins also use the MaxMind database. Thanks to Marcus from LunaWorX for finding this bug.


  • Included the necessary geoip.inc file.. duh


  • Initial release

Requires: 3.5.2 or higher
Compatible up to: 4.1.7
Last Updated: 2015-3-13
Active Installs: 20,000+


3.8 out of 5 stars


3 of 7 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

67,3,2 50,2,1 100,1,1
50,4,2 100,1,1 67,3,2 100,1,1
100,1,1 25,4,1 100,1,1
100,2,2 100,1,1 100,1,1 100,1,1
0,1,0 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,2,2 100,2,2 0,1,0 100,1,1
100,2,2 100,1,1
100,1,1 100,1,1