Aktuellste GeoIP DB von Maxmind

Für ein Projekt von mir benötige ich die Geo IP Datenbank von MaxMind, die es hier gibt: http://dev.maxmind.com/geoip/geolite#Downloads-0
Grundsätzlich ist das auch kein Problem, allerdings möchte ich immer die aktuellste City Datenbank verwenden. Diese ist als CSV hier verfügbar: http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/

Um nun immer die aktuellste Datei herunterzuladen und in meine Datenbank zu importieren ist ein wenig bash nötig:

wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/$(wget -O- 
   http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/ | 
   egrep -o 'GeoLiteCity_[0-9]+.zip' | sort -V | tail -1)

Zur Erklärung:
Mit egrep hole ich mir alle Dateien von der Seite, die mit .zip enden. Diese sortiere ich danach (für den Fall, das die MaxMind Seite mal nicht immer die aktuellste Version als letzte ausgibt) und hole diese dann mit wget ab.

Dann mit

unzip GeoLiteCity*.zip

entpacken und die beiden Dateien in die Datenbank importieren.
Dazu habe ich mir kleines Import Script geschrieben, das beide Dateien importiert.
Hier der Aufruf:

cd GeoLiteCity*
mv *.csv ../
cd ..
mysql --user= --password= geodb < ../import.sql

Das Importscript:

TRUNCATE TABLE geoip4_city_blocks;
LOAD DATA INFILE 'GeoLiteCity-Blocks.csv'
        INTO TABLE geoip4_city_blocks CHARACTER SET utf8 FIELDS TERMINATED BY ','
        ENCLOSED BY '"' IGNORE 2 LINES (gbl_block_start, gbl_block_end, gbl_glc_id);

TRUNCATE TABLE geoip4_city_locations;
LOAD DATA INFILE 'GeoLiteCity-Location.csv'
        INTO TABLE geoip4_city_locations CHARACTER SET utf8 FIELDS TERMINATED BY ','
        ENCLOSED BY '"' IGNORE 2 LINES (glc_id, glc_country, glc_region, glc_city,glc_zip, glc_latitude, 
        glc_longitude, @ignored, @ignored);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.