Je me rends compte que cette question date de plus de 4 ans, mais je voulais ajouter des détails supplémentaires sur la façon dont les utilisateurs des versions plus récentes de Mac OS X - comme Mac OS X 10.7 (Lion), Mac OS X 10.8 (Mountain Lion) et Mac OS X 10.9 (Mavericks) - peuvent installer GeoIP sur leurs machines. J'ai testé cette méthode jusqu'à Mac OS X 10.9.5, mais je pense que les mêmes instructions devraient fonctionner pour Mac OS X 10.10 (Yosemite).
En ce qui concerne l'intégration de Python/Django, je suis presque sûr que si le binaire GeoIP - et les bases de données associées - sont correctement installés dans tout le système, il n'est pas nécessaire d'utiliser la fonction GEOIP_PATH
ou des paramètres connexes. Mais je suis prêt à entendre d'autres personnes dans les commentaires si mon hypothèse est erronée.
Prérequis.
Tout d'abord, il faut que Xcode soit installé. Et comme Xcode - depuis au moins la version 4.3 je crois - n'inclut plus les versions GNU de autoconf
, automake
y libtool
Ceux-ci doivent également être installés. Je donne des détails sur comment installer autoconf
, automake
y libtool
dans cette réponse . Le reste de cette réponse suppose que votre système dispose déjà de cette configuration.
Installation de GeoIP à partir de la source.
Une fois les conditions préalables remplies, vous pouvez installer GeoIP de MaxMind comme suit.
Définissez le répertoire de travail comme étant votre répertoire personnel :
cd
Obtenez le code source et décompressez-le :
curl -O http://www.maxmind.com/download/geoip/api/c/GeoIP-latest.tar.gz
tar -xvzf GeoIP-latest.tar.gz
Allez dans le répertoire du code source non compressé :
cd ./GeoIP*
Exécuter libtoolize
sur le code source :
libtoolize -f
Lorsque cela est fait, exécutez le programme configure
script sur le code source :
./configure
Exécuter maintenant make
pour le compiler :
make
Exécutez ensuite make check
pour vérifier que tout va bien :
make check
Installez-le maintenant :
sudo make install
Vérifiez qu'il est installé en exécutant le programme geoiplookup
dont le résultat devrait ressembler à ceci :
Usage: geoiplookup [-h] [-?] [-d custom_dir] [-f custom_file] [-v] [-i] [-l] <ipaddress|hostname>
Vous avez maintenant compilé le code source de GeoIP, mais vous n'avez pas installé de bases de données GeoIP pour qu'il puisse les utiliser/référencer. Installons-les donc.
Installation des bases de données GeoIP.
Nous allons donc obtenir les trois (3) principales bases de données GeoIP qui sont disponibles sur le marché avec curl
comme ceci. Définissez le répertoire de travail comme étant votre répertoire personnel :
cd
Et maintenant, utilisez curl
pour obtenir le GeoIP.dat.gz
, GeoLiteCity.dat.gz
y GeoIPASNum.dat.gz
des bases de données :
curl -O http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
curl -O http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
curl -O http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
Ceci fait, déplaçons-les dans le répertoire approprié pour que le programme GeoIP puisse les référencer, à savoir /usr/local/share/GeoIP/
. Si ce répertoire n'existe pas sur votre système, vous pouvez le créer comme suit :
sudo mkdir -p /usr/local/share/GeoIP/
Une fois cela fait, déplacez le fichier téléchargé GeoIP.dat.gz
, GeoLiteCity.dat.gz
y GeoIPASNum.dat.gz
dans ce répertoire :
sudo mv ~/GeoIP.dat.gz /usr/local/share/GeoIP/
sudo mv ~/GeoLiteCity.dat.gz /usr/local/share/GeoIP/
sudo mv ~/GeoIPASNum.dat.gz /usr/local/share/GeoIP/
Et les décompresser sur place :
sudo gzip -d -f /usr/local/share/GeoIP/GeoIP.dat.gz
sudo gzip -d -f /usr/local/share/GeoIP/GeoLiteCity.dat.gz
sudo gzip -d -f /usr/local/share/GeoIP/GeoIPASNum.dat.gz
Nous devons également renommer GeoLiteCity.dat
à GeoIPCity.dat
comme ceci :
sudo mv /usr/local/share/GeoIP/GeoLiteCity.dat /usr/local/share/GeoIP/GeoIPCity.dat
Test final du binaire GeoIP.
Avec le binaire GeoIP compilé à partir des sources et installé, ainsi qu'avec les bases de données en place, geoiplookup
devrait fonctionner comme prévu. Par exemple, effectuons une recherche GeoIP sur Google :
geoiplookup google.com
Si tout se passe bien, la sortie de cette commande devrait être la suivante :
GeoIP Country Edition: US, United States
GeoIP City Edition, Rev 1: US, CA, California, Mountain View, 94043, 37.419201, -122.057404, 807, 650
GeoIP ASNum Edition: AS15169 Google Inc.