Esta es la API de PHP para leer archivos MaxMind DB. MaxMind DB es un formato de archivo binario que almacena datos indexados por subredes de direcciones IP (IPv4 o IPv6).
Recomendamos instalar este paquete con Composer.
Para descargar Composer, ejecute en el directorio raíz de su proyecto:
curl -sS https://getcomposer.org/installer | php
Ahora deberías tener el archivo composer.phar
en el directorio de tu proyecto.
Ejecute en la raíz de su proyecto:
php composer.phar require maxmind-db/reader:~1.0
Ahora debería tener los archivos composer.json
y composer.lock
así como el directorio vendor
en el directorio de su proyecto. Si utiliza un sistema de control de versiones, se le debe agregar composer.json
.
Después de instalar las dependencias, debes solicitar el cargador automático de Composer desde tu código:
require ' vendor/autoload.php ' ;
Si no desea utilizar Composer por algún motivo, se le proporciona un autoload.php
personalizado en la raíz del proyecto. Para usar la biblioteca, simplemente incluya ese archivo,
require ( ' /path/to/MaxMind-DB-Reader-php/autoload.php ' );
y luego crear una instancia de la clase de lector normalmente:
use MaxMind Db Reader ;
$ reader = new Reader ( ' example.mmdb ' );
Los RPM están disponibles en el repositorio oficial de Fedora.
Para instalar en Fedora, ejecute:
dnf install php-maxminddb
Para instalar en CentOS o RHEL 7, primero habilite el repositorio EPEL y luego ejecute:
yum install php-maxminddb
Tenga en cuenta que MaxMind no mantiene estos paquetes.
<?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 proporciona una extensión C opcional que reemplaza MaxMindDbReader
. Para utilizar esta extensión, debe instalar la API de Reader como se describe arriba e instalar la extensión como se describe a continuación. Si está utilizando un cargador automático, no debería ser necesario realizar cambios en su código.
Primero instale libmaxminddb como se describe en su archivo README.md. Después de instalar exitosamente libmaxmindb, puede instalar la extensión desde pecl:
pecl install maxminddb
Alternativamente, puede instalarlo desde la fuente. Para hacerlo, ejecute los siguientes comandos desde el directorio de nivel superior de esta distribución:
cd ext
phpize
./configure
make
make test
sudo make install
Luego debes cargar tu extensión. El método recomendado es agregar lo siguiente a su archivo php.ini
:
extension=maxminddb.so
Nota: Es posible que necesite instalar el paquete de desarrollo PHP en su sistema operativo, como php5-dev para sistemas basados en Debian o php-devel para sistemas basados en RedHat/Fedora.
El formato MaxMind DB incluye un entero sin signo de 128 bits como tipo. Aunque actualmente ninguna base de datos distribuida por MaxMind utiliza este tipo, tanto el lector PHP puro como la extensión C admiten este tipo. El lector PHP puro requiere gmp o bcmath para leer bases de datos con enteros sin signo de 128 bits.
El número entero se devuelve actualmente como una cadena hexadecimal (con el prefijo "0x") mediante la extensión C y una cadena decimal (sin prefijo) mediante el lector PHP puro. Cualquier cambio para que las implementaciones del lector siempre devuelvan una representación hexadecimal o decimal del número entero NO se considerará un cambio importante.
Informe todos los problemas con este código utilizando el rastreador de problemas de GitHub.
Si tiene un problema con un servicio MaxMind que no es específico de la API del cliente, consulte nuestra página de soporte.
Esta biblioteca requiere PHP 7.2 o superior.
Es posible que se requiera la extensión GMP o BCMath para leer algunas bases de datos utilizando la API PHP pura.
Se recomiendan parches y solicitudes de extracción. Todo el código debe seguir las pautas de estilo PSR-1 y PSR-2. Incluya pruebas unitarias siempre que sea posible.
La API PHP de MaxMind DB Reader utiliza versiones semánticas.
Este software tiene Copyright (c) 2014-2024 de MaxMind, Inc.
Este es un software gratuito, con licencia Apache, versión 2.0.