Blob Blame History Raw
Automatically fetching GeoIP "free" databases
==============================================

As provided by Maxmind, LLC, the GeoIP library packages possess tools to
fetch the licensed country/city/organization etc. databases they
provide, but no such tool to fetch the free Country/City equivalents.

Additionally, the database version shipped with the base package will be
the current one at the time a new library release ships. Therefore, the
shipped database gets less accurate and obsolescent if the library has
not been updated in some time.

Therefore these databases can become out-of-date quite quickly unless
the user manually fetches and replaces them regularly; Maxmind generally
release updates once a month (on the 1st/2nd day of the month).

To assist users/administrators in automating retrieval/updating of the
available free databases, I've provided the following Perl scripts:

THE SCRIPTS:
===========

* fetch-geoipdata.pl - This fetches the base GeoIP.dat.gz file from
Maxmind's site, replacing the existing /usr/share/GeoIP/GeoIP.dat file
appropriately, keeping a dated backup (YYYYMMDD) of the old database file.

* fetch-geoipdata-city.pl - This works the same way as the above script,
but on the free City database. It should be noted that a) the City database
is not part of the standard library package and b) it's fairly large
(~20mb) and not friendly to users on slow connections.

File location and URL to fetch from are in the script itself, feel free
to change these to suit your system and local requirements.

REQUIREMENTS:
============
* A basic Perl installation will do. As long as Carp, File::Copy and the
  LWP modules are available the scripts will be satisfied
* gzip to decompress the fetched archives. Almost all systems will have
  this as part of the base installation.

USAGE:
============
* Simply put the scripts in your PATH and set them to executable.  

* These are best run from a crontab entry, ideally on the 1st/2nd of the
  month (depending on your timezone. I'm at +1000  - Queensland,
  Australia so that works for me)

  eg

  # Fetch GeoIP databases at 6am on the 2nd of the month
  00 06 2 * * /usr/local/bin/fetch-geoipdata.pl

  You should not need to reload apps using the databases under normal
  circumstances.

BUGS:
============
* Hopefully few if any. More verbose error checking is planned.
* Please do not send bug reports or issues relating to these scripts to
  Maxmind, LLC - I am in no way employed by or personally/professionally
  related to the company, I'm just a user like you :-)
* Feel free to send any improvements / bugfixes / ideas to me directly.

AUTHOR
============
Michael Fleming <mfleming@enlartenment.com>

LICENSE
============
This code is licensed under the GPL version 2