Il s'agit de l'API PHP pour lire les fichiers MaxMind DB. MaxMind DB est un format de fichier binaire qui stocke les données indexées par sous-réseaux d'adresses IP (IPv4 ou IPv6).
Nous vous recommandons d'installer ce package avec Composer.
Pour télécharger Composer, exécutez dans le répertoire racine de votre projet :
curl -sS https://getcomposer.org/installer | php
Vous devriez maintenant avoir le fichier composer.phar
dans le répertoire de votre projet.
Exécutez à la racine de votre projet :
php composer.phar require maxmind-db/reader:~1.0
Vous devriez maintenant avoir les fichiers composer.json
et composer.lock
ainsi que le répertoire vendor
dans le répertoire de votre projet. Si vous utilisez un système de contrôle de version, composer.json
doit y être ajouté.
Après avoir installé les dépendances, vous devez exiger le chargeur automatique Composer de votre code :
require ' vendor/autoload.php ' ;
Si vous ne souhaitez pas utiliser Composer pour une raison quelconque, un autoload.php
personnalisé vous est fourni à la racine du projet. Pour utiliser la bibliothèque, incluez simplement ce fichier,
require ( ' /path/to/MaxMind-DB-Reader-php/autoload.php ' );
puis instanciez la classe reader normalement :
use MaxMind Db Reader ;
$ reader = new Reader ( ' example.mmdb ' );
Les RPM sont disponibles dans le référentiel officiel Fedora.
Pour installer sur Fedora, exécutez :
dnf install php-maxminddb
Pour installer sur CentOS ou RHEL 7, activez d'abord le référentiel EPEL, puis exécutez :
yum install php-maxminddb
Veuillez noter que ces packages ne sont pas maintenus par 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 fournit une extension C facultative qui remplace MaxMindDbReader
. Pour utiliser cette extension, vous devez installer l'API Reader comme décrit ci-dessus et installer l'extension comme décrit ci-dessous. Si vous utilisez un chargeur automatique, aucune modification de votre code ne devrait être nécessaire.
Installez d'abord libmaxminddb comme décrit dans son fichier README.md. Après avoir installé avec succès libmaxmindb, vous pouvez installer l'extension depuis pecl :
pecl install maxminddb
Alternativement, vous pouvez l'installer à partir de la source. Pour ce faire, exécutez les commandes suivantes depuis le répertoire de niveau supérieur de cette distribution :
cd ext
phpize
./configure
make
make test
sudo make install
Vous devez ensuite charger votre extension. La méthode recommandée consiste à ajouter ce qui suit à votre fichier php.ini
:
extension=maxminddb.so
Remarque : Vous devrez peut-être installer le package de développement PHP sur votre système d'exploitation, tel que php5-dev pour les systèmes basés sur Debian ou php-devel pour ceux basés sur RedHat/Fedora.
Le format MaxMind DB inclut un entier non signé de 128 bits comme type. Bien qu'aucune base de données distribuée par MaxMind n'utilise actuellement ce type, le lecteur PHP pur et l'extension C prennent en charge ce type. Le lecteur PHP pur nécessite gmp ou bcmath pour lire les bases de données contenant des entiers non signés de 128 bits.
L'entier est actuellement renvoyé sous forme de chaîne hexadécimale (préfixée par "0x") par l'extension C et sous forme de chaîne décimale (sans préfixe) par le lecteur PHP pur. Toute modification visant à ce que les implémentations du lecteur renvoient toujours une représentation hexadécimale ou décimale de l'entier ne sera PAS considérée comme une modification radicale.
Veuillez signaler tous les problèmes liés à ce code à l'aide du outil de suivi des problèmes GitHub.
Si vous rencontrez un problème avec un service MaxMind qui n'est pas spécifique à l'API client, veuillez consulter notre page d'assistance.
Cette bibliothèque nécessite PHP 7.2 ou supérieur.
L'extension GMP ou BCMath peut être nécessaire pour lire certaines bases de données en utilisant l'API PHP pure.
Les correctifs et les demandes d’extraction sont encouragés. Tout le code doit suivre les directives de style PSR-1 et PSR-2. Veuillez inclure des tests unitaires autant que possible.
L'API PHP MaxMind DB Reader utilise le versionnage sémantique.
Ce logiciel est protégé par Copyright (c) 2014-2024 par MaxMind, Inc.
Il s'agit d'un logiciel gratuit, sous licence Apache, version 2.0.