Я понимаю, что на данный момент этому вопросу уже более 4 лет, но я хотел бы добавить дополнительные сведения о том, как пользователи более современных версий Mac OS X - таких как Mac OS X 10.7 (Lion), Mac OS X 10.8 (Mountain Lion) и Mac OS X 10.9 (Mavericks) - можно установить GeoIP на своих компьютерах. Это было проверено мной до Mac OS X 10.9.5, но я считаю, что точно такие же инструкции должны хорошо работать для Mac OS X 10.10 (Yosemite).
Что касается интеграции Python/Django, я вполне уверен, что, если двоичный файл GeoIP и связанные с ним базы данных установлены должным образом в масштабе всей системы, вам не придется работать с GEOIP_PATH
или с соответствующими настройками. Но было бы открыто услышать от других в комментариях, если мое предположение неверно.
Предпосылки.
Во-первых, нужно установить Xcode. А поскольку Xcode - по крайней мере, начиная с версии 4.3, я считаю, - больше не включает в себя GNU-версии autoconf
, automake
и libtool
они также должны быть установлены. В этом ответе я подробно расскажу , как установить autoconf
, automake
и libtool
. Остальная часть этого ответа предполагает, что ваша система уже имеет эту настройку.
Установка GeoIP из источника.
С учетом предварительных условий вы можете установить GeoIP MaxMind следующим образом.
Установите рабочий каталог в свой домашний каталог:
cd
Получите исходный код и распакуйте его:
curl -O http://www.maxmind.com/download/geoip/api/c/GeoIP-latest.tar.gz
tar -xvzf GeoIP-latest.tar.gz
Перейдите в каталог с несжатым исходным кодом:
cd ./GeoIP*
Запустите libtoolize
для исходного кода:
libtoolize -f
Когда это будет сделано, запустите скрипт configure
для исходного кода:
./configure
Теперь запустите make
чтобы скомпилировать его:
make
Затем запустите make check
чтобы проверить, все ли хорошо:
make check
Теперь установите его:
sudo make install
Проверьте, установлен ли он, запустив команду geoiplookup
, вывод которой должен быть примерно таким:
Usage: geoiplookup [-h] [-?] [-d custom_dir] [-f custom_file] [-v] [-i] [-l] <ipaddress|hostname>
Теперь у вас есть скомпилированный исходный код GeoIP, но у вас нет установленных баз данных GeoIP для его использования / ссылки. Итак, давайте установим их.
Установка баз данных GeoIP.
Таким образом, мы собираемся получить три (3) основные базы данных GeoIP, которые доступны там с curl
как это. Установите рабочий каталог в свой домашний каталог:
cd
А теперь используйте curl
для получения баз данных GeoIP.dat.gz
, GeoLiteCity.dat.gz
и 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
Сделав это, давайте переместим их в соответствующий каталог для программы GeoIP, чтобы указать на них каталог /usr/local/share/GeoIP/
. Если этот каталог не существует в вашей системе, вы можете сделать его так:
sudo mkdir -p /usr/local/share/GeoIP/
Сделав это, переместите загруженные базы данных GeoIP.dat.gz
, GeoLiteCity.dat.gz
и GeoIPASNum.dat.gz
в этот каталог:
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/
И распакуйте их на месте:
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
Нам также нужно переименовать GeoLiteCity.dat
в GeoIPCity.dat
следующим образом:
sudo mv /usr/local/share/GeoIP/GeoLiteCity.dat /usr/local/share/GeoIP/GeoIPCity.dat
Окончательное бинарное тестирование GeoIP.
С двоичным файлом GeoIP, скомпилированным из исходного кода и установленным, а также имеющим базы данных, geoiplookup
должен работать как положено. Например, давайте сделаем поиск GeoIP в Google:
geoiplookup google.com
Вывод этой команды, если все прошло хорошо, должен быть:
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.