Esta é a API PHP para leitura de arquivos MaxMind DB. MaxMind DB é um formato de arquivo binário que armazena dados indexados por sub-redes de endereços IP (IPv4 ou IPv6).
Recomendamos instalar este pacote com o Composer.
Para baixar o Composer, execute no diretório raiz do seu projeto:
curl -sS https://getcomposer.org/installer | php
Agora você deve ter o arquivo composer.phar
no diretório do seu projeto.
Execute na raiz do seu projeto:
php composer.phar require maxmind-db/reader:~1.0
Agora você deve ter os arquivos composer.json
e composer.lock
bem como o diretório vendor
no diretório do seu projeto. Se você usar um sistema de controle de versão, composer.json
deverá ser adicionado a ele.
Depois de instalar as dependências, você precisa solicitar o autoloader do Composer em seu código:
require ' vendor/autoload.php ' ;
Se você não quiser usar o Composer por algum motivo, um autoload.php
personalizado será fornecido na raiz do projeto. Para usar a biblioteca, basta incluir esse arquivo,
require ( ' /path/to/MaxMind-DB-Reader-php/autoload.php ' );
e então instancie a classe do leitor normalmente:
use MaxMind Db Reader ;
$ reader = new Reader ( ' example.mmdb ' );
Os RPMs estão disponíveis no repositório oficial do Fedora.
Para instalar no Fedora, execute:
dnf install php-maxminddb
Para instalar no CentOS ou RHEL 7, primeiro habilite o repositório EPEL e depois execute:
yum install php-maxminddb
Observe que esses pacotes não são mantidos pela 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 fornece uma extensão C opcional que é um substituto imediato para MaxMindDbReader
. Para usar esta extensão, você deve instalar a API do Reader conforme descrito acima e instalar a extensão conforme descrito abaixo. Se você estiver usando um autoloader, nenhuma alteração em seu código será necessária.
Primeiro instale o libmaxminddb conforme descrito em seu arquivo README.md. Após instalar com sucesso o libmaxmindb, você pode instalar a extensão do pecl:
pecl install maxminddb
Alternativamente, você pode instalá-lo a partir da fonte. Para fazer isso, execute os seguintes comandos no diretório de nível superior desta distribuição:
cd ext
phpize
./configure
make
make test
sudo make install
Você então deve carregar sua extensão. O método recomendado é adicionar o seguinte ao seu arquivo php.ini
:
extension=maxminddb.so
Nota: Você pode precisar instalar o pacote de desenvolvimento PHP em seu sistema operacional, como php5-dev para sistemas baseados em Debian ou php-devel para sistemas baseados em RedHat/Fedora.
O formato MaxMind DB inclui inteiro não assinado de 128 bits como tipo. Embora nenhum banco de dados distribuído pela MaxMind atualmente faça uso desse tipo, tanto o leitor PHP puro quanto a extensão C suportam esse tipo. O leitor PHP puro requer gmp ou bcmath para ler bancos de dados com números inteiros não assinados de 128 bits.
O inteiro é atualmente retornado como uma string hexadecimal (prefixada com "0x") pela extensão C e uma string decimal (sem prefixo) pelo leitor PHP puro. Qualquer alteração para fazer com que as implementações do leitor sempre retornem uma representação hexadecimal ou decimal do número inteiro NÃO será considerada uma alteração significativa.
Relate todos os problemas com este código usando o rastreador de problemas do GitHub.
Se você estiver tendo problemas com um serviço MaxMind que não seja específico da API do cliente, consulte nossa página de suporte.
Esta biblioteca requer PHP 7.2 ou superior.
A extensão GMP ou BCMath pode ser necessária para ler alguns bancos de dados usando a API PHP pura.
Patches e solicitações pull são incentivados. Todo o código deve seguir as diretrizes de estilo PSR-1 e PSR-2. Por favor inclua testes unitários sempre que possível.
A API PHP do MaxMind DB Reader usa controle de versão semântico.
Este software é protegido por Copyright (c) 2014-2024 da MaxMind, Inc.
Este é um software gratuito, licenciado sob a Licença Apache, Versão 2.0.