3.0.9 Release Note

On release 3.0.7, this plugin had been equipped with WordPress-IP-Geo-API for GeoLite2 free databases becase Maxmind announced that GeoLite Legacy Downloadable Databases will be stopped updating on April 1, 2018.

But the new databases seemed not to have enough entries compared to the legacy one. And also 3.0.7 had an serious bug which made descendent scanning stopped when the API claimed that a country code was unknown, i.e. ZZ.

After releasing 3.0.8 to fix the above issue on , I have observed how many times GeoLite2 databases claimed ZZ. It still occurred but I decided to change the priority of scanning order because the day will come on next month.

Maintenance: Priority of scanning order

Now you can find “Geolite2” is placed higher than “Maxmind” which handles GeoLite Legacy DBs in “Geolocation API settings” section. It means GeoLite2 DBs would be always scanned before GeoLite Legacy’s.

Geolocation API settings

When GeoLite2 DB fails to scan a country code (i.e. ZZ), then Legacy DB is used to determine the country code. The following picture shows that Legacy DBs are used 8 times as fallbacks for the recent month.

Statistics of validation

The problem here is that those fallbacks take additional costs (e.g. time and server resource). So if you find these so frequently, please uncheck “Geolite2” in “Geolocation API settings” section.

New featuer: CIDR calculator

You can find the SOS button beside the text area for IP address and AS Number.

Help button

It pops up a CIDR calculator that is actually to convert some range of IP addresses and CIDR to each other.

CIDR calculator for IPv4/IPv6

It’s a full JavaScript program that I transplanted from the following PHP libraries.

Here, I’ll show you some examples to explain how it works to convert to each other.

Example 1

If you put the following range of IP addresses into the “Range” text area and click “” :

192.168.0.0 - 192.168.255.255

you’ll get the answer in the “CIDR” text area like this :

192.168.0.0/16

Example 2

If you put the following 2 lines as “CIDR” and click “” :

192.168.0.0/16
192.168.0.0/32

you will get 192.168.0.0 - 192.168.255.255 as “Range” because 192.168.0.0/16 includes 192.168.0.0/32.

Example 3

If you put the following 2 lines as “Range” :

192.168.2.0 - 192.168.2.255
192.168.1.0 - 192.168.1.255

you will get the answer :

192.168.1.0/24
192.168.2.0/24

Then click “” to convert them back to “Range” again, you’ll get 1 line as follows :

192.168.1.0 - 192.168.2.255

Example 4

If you put 192.168.1.1 - 192.168.1.254 into “Range”, you will get the answer like this :

192.168.1.1/32
192.168.1.2/31
192.168.1.4/30
192.168.1.8/29
192.168.1.16/28
192.168.1.32/27
192.168.1.64/26
192.168.1.128/26
192.168.1.192/27
192.168.1.224/28
192.168.1.240/29
192.168.1.248/30
192.168.1.252/31
192.168.1.254/32

In this case, you should specify 192.168.1.0/16 as “CIDR” because it covers all the above IP addresses.

Have fun! emoji .