Dies ist die PHP-API zum Lesen von MaxMind-DB-Dateien. MaxMind DB ist ein binäres Dateiformat, das nach IP-Adresssubnetzen (IPv4 oder IPv6) indizierte Daten speichert.
Wir empfehlen, dieses Paket mit Composer zu installieren.
Um Composer herunterzuladen, führen Sie im Stammverzeichnis Ihres Projekts Folgendes aus:
curl -sS https://getcomposer.org/installer | php
Sie sollten nun die Datei composer.phar
in Ihrem Projektverzeichnis haben.
Führen Sie in Ihrem Projektstammverzeichnis Folgendes aus:
php composer.phar require maxmind-db/reader:~1.0
Sie sollten nun die Dateien composer.json
und composer.lock
sowie das Verzeichnis vendor
in Ihrem Projektverzeichnis haben. Wenn Sie ein Versionskontrollsystem verwenden, sollte composer.json
hinzugefügt werden.
Nach der Installation der Abhängigkeiten müssen Sie den Composer-Autoloader aus Ihrem Code anfordern:
require ' vendor/autoload.php ' ;
Wenn Sie Composer aus irgendeinem Grund nicht verwenden möchten, wird im Projektstammverzeichnis eine benutzerdefinierte autoload.php
für Sie bereitgestellt. Um die Bibliothek zu verwenden, fügen Sie einfach diese Datei hinzu.
require ( ' /path/to/MaxMind-DB-Reader-php/autoload.php ' );
und dann die Reader-Klasse normal instanziieren:
use MaxMind Db Reader ;
$ reader = new Reader ( ' example.mmdb ' );
RPMs sind im offiziellen Fedora-Repository verfügbar.
Führen Sie zur Installation auf Fedora Folgendes aus:
dnf install php-maxminddb
Um unter CentOS oder RHEL 7 zu installieren, aktivieren Sie zunächst das EPEL-Repository und führen Sie dann Folgendes aus:
yum install php-maxminddb
Bitte beachten Sie, dass diese Pakete nicht von MaxMind verwaltet werden.
<?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 bietet eine optionale C-Erweiterung, die einen direkten Ersatz für MaxMindDbReader
darstellt. Um diese Erweiterung nutzen zu können, müssen Sie die Reader-API wie oben beschrieben installieren und die Erweiterung wie unten beschrieben installieren. Wenn Sie einen Autoloader verwenden, sollten keine Änderungen an Ihrem Code erforderlich sein.
Installieren Sie zunächst libmaxminddb wie in der Datei README.md beschrieben. Nach erfolgreicher Installation von libmaxmindb können Sie die Erweiterung von pecl installieren:
pecl install maxminddb
Alternativ können Sie es auch von der Quelle installieren. Führen Sie dazu die folgenden Befehle im obersten Verzeichnis dieser Distribution aus:
cd ext
phpize
./configure
make
make test
sudo make install
Anschließend müssen Sie Ihre Erweiterung laden. Die empfohlene Methode besteht darin, Folgendes zu Ihrer php.ini
Datei hinzuzufügen:
extension=maxminddb.so
Hinweis: Möglicherweise müssen Sie das PHP-Entwicklungspaket auf Ihrem Betriebssystem installieren, z. B. php5-dev für Debian-basierte Systeme oder php-devel für RedHat/Fedora-basierte Systeme.
Das MaxMind-DB-Format umfasst eine vorzeichenlose 128-Bit-Ganzzahl als Typ. Obwohl derzeit keine von MaxMind vertriebene Datenbank diesen Typ nutzt, unterstützen sowohl der reine PHP-Reader als auch die C-Erweiterung diesen Typ. Der reine PHP-Reader benötigt gmp oder bcmath, um Datenbanken mit 128-Bit-Ganzzahlen ohne Vorzeichen zu lesen.
Die Ganzzahl wird derzeit von der C-Erweiterung als hexadezimale Zeichenfolge (mit dem Präfix „0x“) und vom reinen PHP-Reader als dezimale Zeichenfolge (ohne Präfix) zurückgegeben. Jede Änderung, die dazu führt, dass die Reader-Implementierungen immer entweder eine hexadezimale oder eine dezimale Darstellung der Ganzzahl zurückgeben, wird NICHT als bahnbrechende Änderung betrachtet.
Bitte melden Sie alle Probleme mit diesem Code über den GitHub-Issue-Tracker.
Wenn Sie ein Problem mit einem MaxMind-Dienst haben, der nicht spezifisch für die Client-API ist, besuchen Sie bitte unsere Support-Seite.
Diese Bibliothek erfordert PHP 7.2 oder höher.
Zum Lesen einiger Datenbanken mithilfe der reinen PHP-API ist möglicherweise die GMP- oder BCMath-Erweiterung erforderlich.
Patches und Pull-Requests werden empfohlen. Der gesamte Code sollte den Stilrichtlinien PSR-1 und PSR-2 entsprechen. Bitte schließen Sie nach Möglichkeit Unit-Tests ein.
Die MaxMind DB Reader PHP API verwendet semantische Versionierung.
Diese Software unterliegt dem Urheberrecht (c) 2014–2024 von MaxMind, Inc.
Dies ist kostenlose Software, lizenziert unter der Apache-Lizenz, Version 2.0.