Blame SOURCES/fetch-geoipdata.pl

e4264f
#!/usr/bin/perl
e4264f
e4264f
use strict;
e4264f
use warnings;
e4264f
use POSIX;
e4264f
use LWP::Simple;
e4264f
use File::Copy;
e4264f
use Carp;
e4264f
e4264f
my $ipdb     = 'GeoIP.dat';
e4264f
my $datadir  = '/usr/share/GeoIP/';
e4264f
my $fullpath = $datadir . $ipdb;
e4264f
my $url      = 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz';
e4264f
my $date     = strftime '%Y%m%d', localtime;
e4264f
e4264f
# Do we have an existing IP database?
e4264f
if ( -e $fullpath ) {
e4264f
    print "Fetching " . $ipdb . " from " . $url . "\r\n";
e4264f
    if ( is_success( getstore( $url, $datadir . 'GeoIP.dat.gz' ) ) ) {
e4264f
        move( $fullpath, $datadir . $ipdb . '.' . $date )
e4264f
          || croak "Can't move the old database aside\r\n";
e4264f
        system 'gzip', '-d', $datadir . 'GeoIP.dat.gz';
e4264f
        if ( $? ne 0 ) {
e4264f
            croak "Could not uncompress database - exited $?\r\n";
e4264f
        }
e4264f
        print "GeoIP database updated. Old copy is at " . $ipdb . "." . $date
e4264f
          . "\r\n";
e4264f
    }
e4264f
    else {
e4264f
        croak "Fetch failed - try again later?\r\n";
e4264f
    }
e4264f
}
e4264f
else {
e4264f
    croak "You don't appear to have a valid GeoIP database installed..\r\n";
e4264f
}
e4264f