Это PHP API для чтения файлов MaxMind DB. MaxMind DB — это двоичный формат файла, в котором хранятся данные, индексированные по подсетям IP-адресов (IPv4 или IPv6).
Мы рекомендуем установить этот пакет с помощью Composer.
Чтобы загрузить Composer, запустите в корневом каталоге вашего проекта:
curl -sS https://getcomposer.org/installer | php
Теперь у вас должен быть файл composer.phar
в каталоге вашего проекта.
Запустите в корне вашего проекта:
php composer.phar require maxmind-db/reader:~1.0
Теперь у вас должны быть файлы composer.json
и composer.lock
а также каталог vendor
в каталоге вашего проекта. Если вы используете систему контроля версий, в нее следует добавить composer.json
.
После установки зависимостей вам необходимо запросить автозагрузчик Composer из вашего кода:
require ' vendor/autoload.php ' ;
Если по какой-то причине вы не хотите использовать Composer, вам предоставляется собственный autoload.php
в корне проекта. Чтобы использовать библиотеку, просто подключите этот файл:
require ( ' /path/to/MaxMind-DB-Reader-php/autoload.php ' );
а затем создайте экземпляр класса читателя как обычно:
use MaxMind Db Reader ;
$ reader = new Reader ( ' example.mmdb ' );
RPM-пакеты доступны в официальном репозитории Fedora.
Для установки в Fedora выполните:
dnf install php-maxminddb
Чтобы установить на CentOS или RHEL 7, сначала включите репозиторий EPEL, а затем запустите:
yum install php-maxminddb
Обратите внимание, что эти пакеты не поддерживаются MaxMind.
<?php
require_once ' vendor/autoload.php ' ;
use MaxMind Db Reader ;
$ ipAddress = ' 24.24.24.24 ' ;
$ databaseFile = ' GeoIP2-City.mmdb ' ;
$ reader = new Reader ( $ databaseFile );
// get returns just the record for the IP address
print_r ( $ reader -> get ( $ ipAddress ));
// getWithPrefixLen returns an array containing the record and the
// associated prefix length for that record.
print_r ( $ reader -> getWithPrefixLen ( $ ipAddress ));
$ reader -> close ();
MaxMind предоставляет дополнительное расширение C, которое является полной заменой MaxMindDbReader
. Чтобы использовать это расширение, вам необходимо установить Reader API, как описано выше, и установить расширение, как описано ниже. Если вы используете автозагрузчик, никаких изменений в коде не требуется.
Сначала установите libmaxminddb, как описано в файле README.md. После успешной установки libmaxmindb вы можете установить расширение из pecl:
pecl install maxminddb
Альтернативно, вы можете установить его из исходного кода. Для этого выполните следующие команды из каталога верхнего уровня этого дистрибутива:
cd ext
phpize
./configure
make
make test
sudo make install
Затем вы должны загрузить свое расширение. Рекомендуемый метод — добавить в файл php.ini
следующее:
extension=maxminddb.so
Примечание. Возможно, вам потребуется установить пакет разработки PHP в вашей ОС, например php5-dev для систем на базе Debian или php-devel для систем на базе RedHat/Fedora.
Формат MaxMind DB включает в себя 128-битное целое число без знака в качестве типа. Хотя ни одна база данных, распространяемая MaxMind, в настоящее время не использует этот тип, как чистая программа чтения PHP, так и расширение C поддерживают этот тип. Чистому читателю PHP требуется gmp или bcmath для чтения баз данных со 128-битными целыми числами без знака.
В настоящее время целое число возвращается в виде шестнадцатеричной строки (с префиксом «0x») расширением C и десятичной строки (без префикса) программой чтения чистого PHP. Любое изменение, позволяющее реализациям чтения всегда возвращать шестнадцатеричное или десятичное представление целого числа, НЕ будет считаться критическим изменением.
Сообщайте обо всех проблемах с этим кодом с помощью системы отслеживания проблем GitHub.
Если у вас возникла проблема со службой MaxMind, не связанная с клиентским API, посетите нашу страницу поддержки.
Для этой библиотеки требуется PHP 7.2 или более поздняя версия.
Расширение GMP или BCMath может потребоваться для чтения некоторых баз данных с использованием чистого PHP API.
Патчи и запросы на включение приветствуются. Весь код должен соответствовать рекомендациям по стилю PSR-1 и PSR-2. Пожалуйста, по возможности включите модульные тесты.
PHP API MaxMind DB Reader использует семантическое управление версиями.
Это программное обеспечение защищено авторскими правами (c) 2014–2024 компании MaxMind, Inc.
Это бесплатное программное обеспечение, распространяемое по лицензии Apache версии 2.0.