これは、MaxMind DB ファイルを読み取るための PHP API です。 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 は、 MaxMindDbReader
のドロップイン代替となるオプションの C 拡張機能を提供します。この拡張機能を使用するには、上記の説明に従って Reader API をインストールし、以下の説明に従って拡張機能をインストールする必要があります。オートローダーを使用している場合、コードを変更する必要はありません。
まず、README.md ファイルの説明に従って libmaxminddb をインストールします。 libmaxmindb が正常にインストールされたら、pecl から拡張機能をインストールできます。
pecl install maxminddb
あるいは、ソースからインストールすることもできます。これを行うには、このディストリビューションの最上位ディレクトリから次のコマンドを実行します。
cd ext
phpize
./configure
make
make test
sudo make install
次に、拡張機能をロードする必要があります。推奨される方法は、 php.ini
ファイルに次の内容を追加することです。
extension=maxminddb.so
注: Debian ベースのシステムの場合は php5-dev、RedHat/Fedora ベースのシステムの場合は php-devel などの PHP 開発パッケージを OS にインストールする必要がある場合があります。
MaxMind DB 形式には、型として 128 ビットの符号なし整数が含まれています。現在、この型を使用する MaxMind 分散データベースはありませんが、純粋な PHP リーダーと C 拡張機能の両方がこの型をサポートしています。純粋な PHP リーダーでは、128 ビット符号なし整数を含むデータベースを読み取るために gmp または bcmath が必要です。
現在、整数は、C 拡張機能によって 16 進文字列 (接頭辞「0x」が付く) として返され、純粋な PHP リーダーによって 10 進文字列 (接頭辞なし) として返されます。リーダーの実装が常に整数の 16 進数表現または 10 進数表現を返すようにする変更は、重大な変更とはみなされません。
このコードに関するすべての問題は、GitHub 問題トラッカーを使用して報告してください。
クライアント API に固有ではない MaxMind サービスで問題が発生している場合は、サポート ページを参照してください。
このライブラリには PHP 7.2 以降が必要です。
純粋な PHP API を使用して一部のデータベースを読み取るには、GMP または BCMath 拡張機能が必要になる場合があります。
パッチとプル リクエストが推奨されます。すべてのコードは PSR-1 および PSR-2 スタイル ガイドラインに従う必要があります。可能な限り単体テストを含めてください。
MaxMind DB Reader PHP API はセマンティック バージョニングを使用します。
このソフトウェアは MaxMind, Inc. の著作権 (c) 2014-2024 に属します。
これはフリー ソフトウェアであり、Apache License バージョン 2.0 に基づいてライセンスされています。