iQ Block Country - Version 1.2.2

Version Description

  • New: Added MOZ as service.
  • New: Added SEMrush as service.
  • New: Added SEOkicks as service.
  • New: Added EU2 and EU3 servers for GeoIP API
  • New: Added support for WPS Hide Login
  • Change: Deleted Asia server due to bad performance
  • Change: Altered behavior of flushing the buffer
Download this release

Release Info

Developer iqpascal
Plugin Icon 128x128 iQ Block Country
Version 1.2.2
Comparing to
See all releases

Code changes from version 1.2.1 to 1.2.2

iq-block-country.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: iQ Block Country
4
  Plugin URI: https://www.webence.nl/plugins/iq-block-country-the-wordpress-plugin-that-blocks-countries-for-you/
5
- Version: 1.2.1
6
  Author: Pascal
7
  Author URI: https://www.webence.nl/
8
  Description: Block visitors from visiting your website and backend website based on which country their IP address is from. The Maxmind GeoIP lite database is used for looking up from which country an ip address is from.
@@ -13,7 +13,7 @@ Domain Path: /lang
13
 
14
  /* This script uses GeoLite Country from MaxMind (http://www.maxmind.com) which is available under terms of GPL/LGPL */
15
 
16
- /* Copyright 2010-2018 Pascal (email: pascal@webence.nl)
17
 
18
  This program is free software; you can redistribute it and/or modify
19
  it under the terms of the GNU General Public License, version 2, as
@@ -65,7 +65,7 @@ function iqblockcountry_buffer() {
65
  * Attempt on output buffering to protect against headers already send mistakes
66
  */
67
  function iqblockcountry_buffer_flush() {
68
- ob_end_flush();
69
  }
70
 
71
 
@@ -126,7 +126,7 @@ function iqblockcountry_upgrade()
126
  $dbversion = get_option( 'blockcountry_version' );
127
  update_option('blockcountry_version',VERSION);
128
 
129
- if ($dbversion != "" && version_compare($dbversion, "1.1.51", '<') )
130
  {
131
  iqblockcountry_find_geoip_location();
132
  }
@@ -208,6 +208,8 @@ define("GEOIP2DBFILE",$upload_dir['basedir'] . "/GeoLite2-Country.mmdb");
208
  define("TRACKINGURL","https://tracking.webence.nl/iq-block-country-tracking.php");
209
  define("BANLISTRETRIEVEURL","https://eu.adminblock.webence.nl/iq-block-country-retrieve.php");
210
  define("GEOIPAPIURL","https://eu.geoip.webence.nl/geoipapi.php");
 
 
211
  define("GEOIPAPIURLUS","https://us.geoip.webence.nl/geoipapi.php");
212
  define("GEOIPAPIURLUS2","https://us2.geoip.webence.nl/geoipapi.php");
213
  define("GEOIPAPIURLUS3","https://us3.geoip.webence.nl/geoipapi.php");
@@ -215,7 +217,7 @@ define("GEOIPAPIURLASIA","https://asia.geoip.webence.nl/geoipapi.php");
215
  define("GEOIPAPICHECKURL","https://eu.geoip.webence.nl/geoipapi-keycheck.php");
216
  define("ADMINAPICHECKURL","https://tracking.webence.nl/adminapi-keycheck.php");
217
  define("IPLOOKUPURL",'https://geoip.webence.nl/iplookup/iplookup.php');
218
- define("VERSION","1.2.1");
219
  define("DBVERSION","122");
220
  define("PLUGINPATH",plugin_dir_path( __FILE__ ));
221
 
2
  /*
3
  Plugin Name: iQ Block Country
4
  Plugin URI: https://www.webence.nl/plugins/iq-block-country-the-wordpress-plugin-that-blocks-countries-for-you/
5
+ Version: 1.2.2
6
  Author: Pascal
7
  Author URI: https://www.webence.nl/
8
  Description: Block visitors from visiting your website and backend website based on which country their IP address is from. The Maxmind GeoIP lite database is used for looking up from which country an ip address is from.
13
 
14
  /* This script uses GeoLite Country from MaxMind (http://www.maxmind.com) which is available under terms of GPL/LGPL */
15
 
16
+ /* Copyright 2010-2019 Pascal (email: pascal@webence.nl)
17
 
18
  This program is free software; you can redistribute it and/or modify
19
  it under the terms of the GNU General Public License, version 2, as
65
  * Attempt on output buffering to protect against headers already send mistakes
66
  */
67
  function iqblockcountry_buffer_flush() {
68
+ if (ob_get_contents()) ob_end_flush();
69
  }
70
 
71
 
126
  $dbversion = get_option( 'blockcountry_version' );
127
  update_option('blockcountry_version',VERSION);
128
 
129
+ if ($dbversion != "" && version_compare($dbversion, "1.2.2", '<') )
130
  {
131
  iqblockcountry_find_geoip_location();
132
  }
208
  define("TRACKINGURL","https://tracking.webence.nl/iq-block-country-tracking.php");
209
  define("BANLISTRETRIEVEURL","https://eu.adminblock.webence.nl/iq-block-country-retrieve.php");
210
  define("GEOIPAPIURL","https://eu.geoip.webence.nl/geoipapi.php");
211
+ define("GEOIPAPIURLEU2","https://eu2.geoip.webence.nl/geoipapi.php");
212
+ define("GEOIPAPIURLEU3","https://eu3.geoip.webence.nl/geoipapi.php");
213
  define("GEOIPAPIURLUS","https://us.geoip.webence.nl/geoipapi.php");
214
  define("GEOIPAPIURLUS2","https://us2.geoip.webence.nl/geoipapi.php");
215
  define("GEOIPAPIURLUS3","https://us3.geoip.webence.nl/geoipapi.php");
217
  define("GEOIPAPICHECKURL","https://eu.geoip.webence.nl/geoipapi-keycheck.php");
218
  define("ADMINAPICHECKURL","https://tracking.webence.nl/adminapi-keycheck.php");
219
  define("IPLOOKUPURL",'https://geoip.webence.nl/iplookup/iplookup.php');
220
+ define("VERSION","1.2.2");
221
  define("DBVERSION","122");
222
  define("PLUGINPATH",plugin_dir_path( __FILE__ ));
223
 
libs/blockcountry-checks.php CHANGED
@@ -84,6 +84,14 @@ function iqblockcountry_retrieve_geoipapi($ipaddress)
84
  {
85
  $url = GEOIPAPIURLUS3;
86
  }
 
 
 
 
 
 
 
 
87
  if (get_option('blockcountry_geoapilocation') == "ASIA")
88
  {
89
  $url = GEOIPAPIURLASIA;
@@ -585,6 +593,13 @@ function iqblockcountry_is_login_page() {
585
  $pos2 = strpos( $_SERVER['REQUEST_URI'], $rwpl ); }
586
  }
587
 
 
 
 
 
 
 
 
588
 
589
  $pos = strpos( $_SERVER['REQUEST_URI'], 'wp-login' );
590
  if ($pos !== false) { $found = TRUE; }
84
  {
85
  $url = GEOIPAPIURLUS3;
86
  }
87
+ if (get_option('blockcountry_geoapilocation') == "EU2")
88
+ {
89
+ $url = GEOIPAPIURLEU2;
90
+ }
91
+ if (get_option('blockcountry_geoapilocation') == "EU3")
92
+ {
93
+ $url = GEOIPAPIURLEU3;
94
+ }
95
  if (get_option('blockcountry_geoapilocation') == "ASIA")
96
  {
97
  $url = GEOIPAPIURLASIA;
593
  $pos2 = strpos( $_SERVER['REQUEST_URI'], $rwpl ); }
594
  }
595
 
596
+ if ( is_plugin_active( 'wps-hide-login/wps-hide-login.php' ) ) {
597
+ $whlpage = get_option('whl_page');
598
+ if (!empty($whlpage)) {
599
+ $pos2 = strpos( $_SERVER['REQUEST_URI'], $whlpage ); }
600
+ }
601
+
602
+
603
 
604
  $pos = strpos( $_SERVER['REQUEST_URI'], 'wp-login' );
605
  if ($pos !== false) { $found = TRUE; }
libs/blockcountry-search-engines.php CHANGED
@@ -23,9 +23,12 @@ $searchengines = array(
23
  "Google Site Verification" => "Google-Site-Verification",
24
  "Jetpack" => "Jetpack by WordPress.com",
25
  "Link checker" => "W3C-checklink",
 
26
  "MSN" => "msnbot",
27
  "Pingdom" => "Pingdom.com_bot",
28
  "Pinterest" => "Pinterest",
 
 
29
  "TinEye" => "tineye-bot",
30
  "Twitter" => "twitterbot",
31
  "Yahoo!" => "yahoo! slurp",
23
  "Google Site Verification" => "Google-Site-Verification",
24
  "Jetpack" => "Jetpack by WordPress.com",
25
  "Link checker" => "W3C-checklink",
26
+ "MOZ" => "rogerbot",
27
  "MSN" => "msnbot",
28
  "Pingdom" => "Pingdom.com_bot",
29
  "Pinterest" => "Pinterest",
30
+ "SEMrush" => "SemrushBot",
31
+ "SEOkicks" => "SEOkicks-Robot",
32
  "TinEye" => "tineye-bot",
33
  "Twitter" => "twitterbot",
34
  "Yahoo!" => "yahoo! slurp",
libs/blockcountry-settings.php CHANGED
@@ -1511,11 +1511,13 @@ if (is_file ( GEOIP2DBFILE ) && (!get_option('blockcountry_geoapikey'))) {
1511
  </th>
1512
  <td width="70%">
1513
 
1514
- <input type="radio" name="blockcountry_geoapilocation" value="EU" <?php checked('EU', get_option('blockcountry_geoapilocation'), true); ?>> Europe<br />
 
 
1515
  <input type="radio" name="blockcountry_geoapilocation" value="US" <?php checked('US', get_option('blockcountry_geoapilocation'), true); ?>> United States - New York<br />
1516
  <input type="radio" name="blockcountry_geoapilocation" value="US2" <?php checked('US2', get_option('blockcountry_geoapilocation'), true); ?>> United States - San Fransico<br />
1517
  <input type="radio" name="blockcountry_geoapilocation" value="US3" <?php checked('US3', get_option('blockcountry_geoapilocation'), true); ?>> United States - Miami<br />
1518
- <input type="radio" name="blockcountry_geoapilocation" value="ASIA" <?php checked('ASIA', get_option('blockcountry_geoapilocation'), true); ?>> Asia<br />
1519
  </td></tr>
1520
  <tr valign="top">
1521
  <th width="30%"><?php _e('Admin block API Key:', 'iq-block-country'); ?><br />
@@ -1816,26 +1818,45 @@ function iqblockcountry_find_geoip_location()
1816
  $infous3 = curl_getinfo($curl);
1817
  curl_close($curl);
1818
 
 
 
 
 
 
 
 
 
 
 
1819
  $curl = curl_init();
1820
  curl_setopt_array($curl, array(
1821
- CURLOPT_RETURNTRANSFER => 1,
1822
- CURLOPT_URL => 'https://asia.geoip.webence.nl/test',
1823
- CURLOPT_USERAGENT => 'iQ Block Country Asia location test/' . get_bloginfo('wpurl')
1824
  ));
1825
  $resp = curl_exec($curl);
1826
- $infoasia = curl_getinfo($curl);
1827
  curl_close($curl);
1828
-
1829
  $curl = curl_init();
1830
  curl_setopt_array($curl, array(
1831
- CURLOPT_URL => 'https://eu.geoip.webence.nl/test',
1832
- CURLOPT_USERAGENT => 'iQ Block Country EU location test/' . get_bloginfo('wpurl')
1833
  ));
1834
  $resp = curl_exec($curl);
1835
- $infoeu = curl_getinfo($curl);
1836
  curl_close($curl);
1837
 
1838
- $fastestsite = min($infoeu['total_time'],$infous['total_time'],$infous2['total_time'],$infous3['total_time'],$infoasia['total_time']);
 
 
 
 
 
 
 
 
 
 
1839
 
1840
  if ($infous['total_time'] == $fastestsite)
1841
  {
@@ -1849,9 +1870,17 @@ function iqblockcountry_find_geoip_location()
1849
  {
1850
  update_option('blockcountry_geoapilocation','US3');
1851
  }
1852
- elseif ($infoasia['total_time'] == $fastestsite)
 
 
 
 
 
 
 
 
1853
  {
1854
- update_option('blockcountry_geoapilocation','ASIA');
1855
  }
1856
  else
1857
  {
1511
  </th>
1512
  <td width="70%">
1513
 
1514
+ <input type="radio" name="blockcountry_geoapilocation" value="EU" <?php checked('EU', get_option('blockcountry_geoapilocation'), true); ?>> Europe (Netherlands)<br />
1515
+ <input type="radio" name="blockcountry_geoapilocation" value="EU2" <?php checked('EU2', get_option('blockcountry_geoapilocation'), true); ?>> Europe (United Kingdom)<br />
1516
+ <input type="radio" name="blockcountry_geoapilocation" value="EU3" <?php checked('EU3', get_option('blockcountry_geoapilocation'), true); ?>> Europe (Germany)<br />
1517
  <input type="radio" name="blockcountry_geoapilocation" value="US" <?php checked('US', get_option('blockcountry_geoapilocation'), true); ?>> United States - New York<br />
1518
  <input type="radio" name="blockcountry_geoapilocation" value="US2" <?php checked('US2', get_option('blockcountry_geoapilocation'), true); ?>> United States - San Fransico<br />
1519
  <input type="radio" name="blockcountry_geoapilocation" value="US3" <?php checked('US3', get_option('blockcountry_geoapilocation'), true); ?>> United States - Miami<br />
1520
+
1521
  </td></tr>
1522
  <tr valign="top">
1523
  <th width="30%"><?php _e('Admin block API Key:', 'iq-block-country'); ?><br />
1818
  $infous3 = curl_getinfo($curl);
1819
  curl_close($curl);
1820
 
1821
+ // $curl = curl_init();
1822
+ // curl_setopt_array($curl, array(
1823
+ // CURLOPT_RETURNTRANSFER => 1,
1824
+ // CURLOPT_URL => 'https://asia.geoip.webence.nl/test',
1825
+ // CURLOPT_USERAGENT => 'iQ Block Country Asia location test/' . get_bloginfo('wpurl')
1826
+ // ));
1827
+ // $resp = curl_exec($curl);
1828
+ // $infoasia = curl_getinfo($curl);
1829
+ // curl_close($curl);
1830
+
1831
  $curl = curl_init();
1832
  curl_setopt_array($curl, array(
1833
+ CURLOPT_URL => 'https://eu.geoip.webence.nl/test',
1834
+ CURLOPT_USERAGENT => 'iQ Block Country EU location test/' . get_bloginfo('wpurl')
 
1835
  ));
1836
  $resp = curl_exec($curl);
1837
+ $infoeu = curl_getinfo($curl);
1838
  curl_close($curl);
1839
+
1840
  $curl = curl_init();
1841
  curl_setopt_array($curl, array(
1842
+ CURLOPT_URL => 'https://eu2.geoip.webence.nl/test',
1843
+ CURLOPT_USERAGENT => 'iQ Block Country EU2 location test/' . get_bloginfo('wpurl')
1844
  ));
1845
  $resp = curl_exec($curl);
1846
+ $infoeu2 = curl_getinfo($curl);
1847
  curl_close($curl);
1848
 
1849
+ $curl = curl_init();
1850
+ curl_setopt_array($curl, array(
1851
+ CURLOPT_URL => 'https://eu3.geoip.webence.nl/test',
1852
+ CURLOPT_USERAGENT => 'iQ Block Country EU3 location test/' . get_bloginfo('wpurl')
1853
+ ));
1854
+ $resp = curl_exec($curl);
1855
+ $infoeu3 = curl_getinfo($curl);
1856
+ curl_close($curl);
1857
+
1858
+
1859
+ $fastestsite = min($infoeu['total_time'],$infoeu2['total_time'],$infoeu3['total_time'],$infous['total_time'],$infous2['total_time'],$infous3['total_time']);
1860
 
1861
  if ($infous['total_time'] == $fastestsite)
1862
  {
1870
  {
1871
  update_option('blockcountry_geoapilocation','US3');
1872
  }
1873
+ // elseif ($infoasia['total_time'] == $fastestsite)
1874
+ // {
1875
+ // update_option('blockcountry_geoapilocation','ASIA');
1876
+ // }
1877
+ elseif ($infoeu2['total_time'] == $fastestsite)
1878
+ {
1879
+ update_option('blockcountry_geoapilocation','EU2');
1880
+ }
1881
+ elseif ($infoeu3['total_time'] == $fastestsite)
1882
  {
1883
+ update_option('blockcountry_geoapilocation','EU3');
1884
  }
1885
  else
1886
  {
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: iqpascal
3
  Donate link: https://www.webence.nl/plugins/donate
4
  Tags: spam, block, country, comments, ban, geo, geo blocking, geo ip, block country, block countries, ban countries, ban country, blacklist, whitelist, security
5
  Requires at least: 3.5.2
6
- Tested up to: 5.0.2
7
- Stable tag: 1.2.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
  Requires PHP: 5.6
@@ -169,10 +169,8 @@ If you just want to allow some countries you can also use the invert function by
169
 
170
  You can download the database(s) directly from MaxMind and upload them to your website.
171
 
172
- 1. Download the IPv4 database from: http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
173
- 2. Unzip the GeoIP database and upload it to your upload dir usually /wp-content/uploads/GeoIP.dat
174
- 3. Download the IPv6 database if you have a website running on IPv6 from: http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
175
- 4. Unzip the GeoIP database and upload it to your upload dir usually /wp-content/uploads/GeoIPv6.dat
176
 
177
  Maxmind updates the GeoLite database every month.
178
 
@@ -230,6 +228,16 @@ be used.
230
 
231
  == Changelog ==
232
 
 
 
 
 
 
 
 
 
 
 
233
  = 1.2.1 =
234
 
235
  * New: Added Link Checker (https://validator.w3.org/checklink) as service.
@@ -432,101 +440,6 @@ be used.
432
  * Change: 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.
433
  * New: Added Webence GeoIP API lookup. See https://geoip.webence.nl/ for more information about this API.
434
 
435
- = 1.1.16 =
436
-
437
- * New: Accessibility option. You can now choose if you want the country default selectbox or an normal selectbox.
438
- * New: New button to empty the logging database..
439
- * 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
440
-
441
- = 1.1.15 =
442
-
443
- * 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.
444
- * Bugfix: Last time GeoIP databases were downloaded was wrong.
445
- * Bugfix: If you configured auto-update of the GeoIP databases the tools tab showed that you did not configure auto update.
446
- * Added check for HTTP_X_TM_REMOTE_ADDR to get real ip address of T-Mobile users.
447
- * Added Twitter, Bitly, Cliqz and TinEye to the search engines list.
448
- * New: No longer blocks category pages of categories you have not blocked.
449
- * Bugfix: Added check if HTTP_USER_AGENT is set.
450
-
451
- = 1.1.14 =
452
-
453
- * Bugfix: The plugin did not recognise the login page when installed to a subdirectory.
454
- * New: You can configure if it auto updates the GeoIP Database. Upon request of those people who have the paid database of MaxMind.
455
- * Added Facebook and MSN to list of search engines.
456
- * Changed the version of the geoip.inc file to the version of https://github.com/daigo75/geoip-api-php
457
-
458
- = 1.1.13 =
459
-
460
- * Bugfix on setting defaults when they values already existed.
461
- * You can now allow search engines access to your country even if they come from countries that you want to block.
462
-
463
- = 1.1.12 =
464
-
465
- * Bugfix on the backend blacklist / whitelist
466
-
467
- = 1.1.11 =
468
-
469
- * Added select box on how many rows to display on the logging tab
470
- * Redirect blocked users to a specific page instead of displaying the block message.
471
- * Added blacklist and whitelist of IP addresses to the backend.
472
- * Adjusted some text
473
- * Minor bugfixes
474
-
475
- = 1.1.10 =
476
-
477
- * Small fixes
478
- * WP 3.9 compatability issue fixed
479
-
480
- = 1.1.9 =
481
-
482
- * Bugfix release due to faulty v1.1.8 release. My Apologies.
483
-
484
- = 1.1.8 =
485
-
486
- * Smashed a bug where the homepage was unprotected due to missing check.
487
-
488
- = 1.1.7 =
489
-
490
- * Added Russian (ru_RU) translation by Maxim
491
- * Added Serbo-Croatian (sr_RU) translation by Borisa Djuraskovic (Webostinghub)
492
- * Changed the logging table a bit.
493
-
494
- = 1.1.6 =
495
- * Added to ban categories. This works the same way as blocking pages (By request of FVCS)
496
- * Changed the admin page layout. Added tabs for frontend and backend blocking to make it look less cluttered
497
- * 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.
498
- * Upon first activation the plugin now fills the backend block list with all countries except the country that is currently used to activate.
499
- * Added IP checking in header HTTP_CLIENT_IP and HTTP_X_REAL_IP
500
-
501
- = 1.1.5 =
502
-
503
- * Statistics required wp-config.php in a specific place bug smashed.
504
-
505
- = 1.1.4 =
506
-
507
- * Added import/export function.
508
- * Minor bugs solved
509
-
510
- = 1.1.3 =
511
-
512
- * Fixed error that when using the option to block individual pages all visitors would be blocked. (Thanks to apostlepoe for reporting)
513
-
514
- = 1.1.2 =
515
-
516
- * Fixed localization error. (Thanks to Lisa for reporting)
517
-
518
- = 1.1.1 =
519
-
520
- * 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.
521
- * 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.
522
-
523
- = 1.1 =
524
-
525
- * Added statistics to the plugin.
526
- * You can view the last 15 hosts that were blocked including the url they visited.
527
- * You can view the top 15 of countries that were blocked in the past 30 days.
528
- * You can view the top 15 of hosts that were blocked in the past 30 days.
529
- * You can view the top URL's that were most blocked in the past 30 days.
530
 
531
  == Upgrade Notice ==
532
 
3
  Donate link: https://www.webence.nl/plugins/donate
4
  Tags: spam, block, country, comments, ban, geo, geo blocking, geo ip, block country, block countries, ban countries, ban country, blacklist, whitelist, security
5
  Requires at least: 3.5.2
6
+ Tested up to: 5.0.3
7
+ Stable tag: 1.2.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
  Requires PHP: 5.6
169
 
170
  You can download the database(s) directly from MaxMind and upload them to your website.
171
 
172
+ 1. Download the GeoIP2 Country database from: http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz
173
+ 2. Unzip the GeoIP2 database and upload the GeoLite2-Country.mmdb file to your upload dir usually /wp-content/uploads/GeoLite2-Country.mmdb
 
 
174
 
175
  Maxmind updates the GeoLite database every month.
176
 
228
 
229
  == Changelog ==
230
 
231
+ = 1.2.2 =
232
+
233
+ * New: Added MOZ as service.
234
+ * New: Added SEMrush as service.
235
+ * New: Added SEOkicks as service.
236
+ * New: Added EU2 and EU3 servers for GeoIP API
237
+ * New: Added support for WPS Hide Login
238
+ * Change: Deleted Asia server due to bad performance
239
+ * Change: Altered behavior of flushing the buffer
240
+
241
  = 1.2.1 =
242
 
243
  * New: Added Link Checker (https://validator.w3.org/checklink) as service.
440
  * Change: 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.
441
  * New: Added Webence GeoIP API lookup. See https://geoip.webence.nl/ for more information about this API.
442
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
443
 
444
  == Upgrade Notice ==
445