1. Use official MaxMind GeoIP Update program. GeoIP updates require an active GeoIP subscription.
Can find more information at http://dev.maxmind.com/geoip/geoipupdate/
2. Manual download of free (*lite* in terms of MaxMind) databases:
geoipupdate.sh:
- Code: Select all
#!/bin/sh
GEOIP_MIRROR="https://mailfud.org/geoip-legacy"
GEOIPDIR=/usr/share/GeoIP
TMPDIR=
DATABASES="GeoIP GeoIPv6 GeoIPCity GeoIPCityv6 GeoIPASNum GeoIPASNumv6 GeoIPISP GeoIPOrg"
if [ "${1}" = -f ] || [ "${1}" = --force ]; then
force=true
fi
if [ -d "${GEOIPDIR}" ]; then
cd $GEOIPDIR
if [ -n "${DATABASES}" ]; then
TMPDIR=$(mktemp -d geoipupdate.XXXXXXXXXX)
echo "Updating GeoIP databases..."
for db in $DATABASES; do
fname=$(basename $db)
if [ -f "${GEOIPDIR}/${fname}.dat" ] || [ ${force} ]; then
wget --no-verbose -t 3 -T 60 \
--user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0" \
"${GEOIP_MIRROR}/${db}.dat.gz" \
-O "${TMPDIR}/${fname}.dat.gz"
if [ $? -eq 0 ]; then
gunzip -fdc "${TMPDIR}/${fname}.dat.gz" > "${TMPDIR}/${fname}.dat"
mv "${TMPDIR}/${fname}.dat" "${GEOIPDIR}/${fname}.dat"
chmod 0644 "${GEOIPDIR}/${fname}.dat"
case ${fname} in
GeoLite*) ln -sf ${fname}.dat `echo ${fname} | sed 's/GeoLite/GeoIP/'`.dat ;;
esac
fi
fi
done
[ -d "${TMPDIR}" ] && rm -rf $TMPDIR
fi
fi
MaxMind service database update frequency (FAQ):
The GeoIP2 and GeoIP Legacy Country and City and GeoIP Legacy Region databases are updated every Tuesday. All other databases are updated on the first Tuesday of the month.
Cron task can for regular updates might be:
- Code: Select all
# GeoIP database update
20 3 * * 4 [ $(date +\%d) -le 7 ] && /usr/local/etc/scripts/geoipupdate.sh