Eu percebo que essa questão tem cerca de 4 anos, mas eu gostaria de adicionar detalhes adicionais sobre como os usuários de versões mais atuais do Mac OS X - como o Mac OS X 10.7 (Lion), o Mac OS X 10.8 ( Mountain Lion) e Mac OS X 10.9 (Mavericks) - podem instalar o GeoIP em suas máquinas. Isso foi testado por mim até o Mac OS X 10.9.5, mas acredito que as mesmas instruções devem funcionar bem para o Mac OS X 10.10 (Yosemite).
No que diz respeito à integração do Python / Django, tenho certeza de que, se o binário do GeoIP - e os bancos de dados relacionados - estiverem instalados corretamente em todo o sistema, você não precisará copiar GEOIP_PATH
ou configurações relacionadas. Mas estaria aberto a ouvir de outros nos comentários se minha suposição estiver errada.
Pré-requisitos.
Primeiro, é necessário ter o Xcode instalado. E como o Xcode - acredito que pelo menos na versão 4.3 - não inclui mais as versões GNU de autoconf
, automake
e libtool
, elas também precisam ser instaladas. Eu forneço detalhes sobre como instalar autoconf
, automake
e libtool
nesta resposta . O restante desta resposta assume que seu sistema já possui essa configuração.
Instalando o GeoIP a partir da fonte.
Com os pré-requisitos cobertos, você pode instalar o GeoIP da MaxMind da seguinte maneira.
Defina o diretório de trabalho para o seu diretório pessoal:
cd
Obtenha o código-fonte e descomprima-o:
curl -O http://www.maxmind.com/download/geoip/api/c/GeoIP-latest.tar.gz
tar -xvzf GeoIP-latest.tar.gz
Entre no diretório do código-fonte descompactado:
cd ./GeoIP*
Execute libtoolize
no código-fonte:
libtoolize -f
Quando isso for feito, execute o script configure
no código-fonte:
./configure
Agora, execute make
para compilá-lo:
make
Em seguida, execute make check
para verificar se tudo está bom:
make check
Agora instale:
sudo make install
Verifique se ele está instalado executando o comando geoiplookup
cuja saída deve ser algo assim:
Usage: geoiplookup [-h] [-?] [-d custom_dir] [-f custom_file] [-v] [-i] [-l] <ipaddress|hostname>
Agora você tem o código-fonte do GeoIP compilado, mas você não tem nenhum banco de dados GeoIP instalado para usar / reference. Então, vamos instalá-los.
Instalando bancos de dados GeoIP.
Então, vamos obter os três (3) principais bancos de dados GeoIP que estão disponíveis com curl
, como este. Defina o diretório de trabalho para o seu diretório pessoal:
cd
E agora use curl
para obter os bancos de dados GeoIP.dat.gz
, GeoLiteCity.dat.gz
e GeoIPASNum.dat.gz
:
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
Feito isso, vamos movê-los para o diretório correto do programa GeoIP para referenciá-los como /usr/local/share/GeoIP/
. Se esse diretório não existe em seu sistema, você pode fazer assim:
sudo mkdir -p /usr/local/share/GeoIP/
Agora, com isso, mova os bancos de dados GeoIP.dat.gz
, GeoLiteCity.dat.gz
e GeoIPASNum.dat.gz
para esse diretório:
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/
E descomprima-os no local:
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
Também precisamos renomear GeoLiteCity.dat
para GeoIPCity.dat
da seguinte forma:
sudo mv /usr/local/share/GeoIP/GeoLiteCity.dat /usr/local/share/GeoIP/GeoIPCity.dat
Teste binário final do GeoIP.
Com o binário do GeoIP compilado da origem e instalado, além de ter os bancos de dados no lugar, geoiplookup
deve funcionar como esperado. Por exemplo, vamos fazer uma pesquisa no GeoIP no Google:
geoiplookup google.com
A saída desse comando se tudo correr bem deve ser:
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.