Difference between revisions of "GeoIP2"
(One intermediate revision by one other user not shown) | |||
Line 28: | Line 28: | ||
Then go to Config Admin -> Surfer section -> IP_FILTER and set to 'Geo-IP2' | Then go to Config Admin -> Surfer section -> IP_FILTER and set to 'Geo-IP2' | ||
− | ==NATS Setup for GeoIP2 PHP library(Must have NATS version 5.1 | + | ==NATS Setup for GeoIP2 PHP library(Must have NATS version 5.0.1.6 or above)== |
The .mmdb file needs to be on your server in a path that is accessible to NATS | The .mmdb file needs to be on your server in a path that is accessible to NATS | ||
Line 42: | Line 42: | ||
<pre> | <pre> | ||
<?php | <?php | ||
− | + | include_once('../vendor_includes/geoip2.phar'); | |
− | + | $reader = new GeoIp2\Database\Reader('<PATH_TO_DB_FILE.mmdb>'); | |
− | + | $record = $reader->country($_SERVER['REMOTE_ADDR']); | |
− | + | $country = $record->country->isoCode; | |
− | + | echo"$country is country"; | |
</pre> | </pre> | ||
'''Note: Please be sure to perform this test after you install or update Maxmind's GeoIP. | '''Note: Please be sure to perform this test after you install or update Maxmind's GeoIP. |
Latest revision as of 16:15, 29 March 2021
GeoIP2 Country Database
Download and install the GeoIP2 Country database from Maxmind.
You can either download the free version of the database or purchase the commercial version
The main file you need is the 'Country' .mmdb file
You will then need to either install and configure the geoip2 apache module or use the php library in NATS.
NATS Setup for GeoIP2 Apache module
Install the geoip2 apache module according to the setup directions here
You will need to specify where the country db file is located and set the environment variable name as 'COUNTRY_CODE' and 'GEOIP_COUNTRY_CODE' in your apache config, for example:
MaxMindDBEnable On MaxMindDBFile COUNTRY_DB /usr/local/share/GeoIP/GeoLite2-Country.mmdb MaxMindDBEnv COUNTRY_CODE COUNTRY_DB/country/iso_code MaxMindDBEnv GEOIP_COUNTRY_CODE COUNTRY_DB/country/iso_code
Then go to Config Admin -> Surfer section -> IP_FILTER and set to 'Geo-IP2'
NATS Setup for GeoIP2 PHP library(Must have NATS version 5.0.1.6 or above)
The .mmdb file needs to be on your server in a path that is accessible to NATS
The path will need to be specified in Config Admin -> Surfer section -> GEOIP2_PHP_DATABASE_LOCATION
You will then switch the IP_FILTER setting in the same section to 'Geo-IP2 PHP' and save your changes
Test Code for GeoIP2 PHP library
The following PHP code will help you test GeoIP. Put it in a file, put the file on your webserver in the nats www directory, and load its URL. It should print your country's name.
<?php include_once('../vendor_includes/geoip2.phar'); $reader = new GeoIp2\Database\Reader('<PATH_TO_DB_FILE.mmdb>'); $record = $reader->country($_SERVER['REMOTE_ADDR']); $country = $record->country->isoCode; echo"$country is country";
Note: Please be sure to perform this test after you install or update Maxmind's GeoIP.
Optional Extension for GeoIP2 PHP library
As stated in their docs: "[This extension] dramatically increase the performance of lookups in GeoIP2 or GeoLite2 databases"
Download this as either standalone or via composer.
Then download this and follow the instructions on the site to configure this library. (Note you will need to have a compiler such as GCC installed on your server).
Once the two packages are installed, you will want to run the commands in the "Installing Extension" section
NATS Default GeoIP country code
This feature is currently in development
You can set a default/fallback country for NATS to use when GeoIP fails to detect a surfer's country via config 'IP_FILTER_DEFAULT_COUNTRY' located in Configuration Admin, 'Surfer' dropdown.
Config supports ISO-3166 two character country codes: ISO-3166