這是用於讀取 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 ' );
然後正常實例化 reader 類別:
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 提供了一個可選的 C 擴展,它是MaxMindDbReader
的直接替代品。為了使用此擴展,您必須如上所述安裝 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
注意:您可能需要在作業系統上安裝 PHP 開發包,例如基於 Debian 的系統的 php5-dev 或基於 RedHat/Fedora 的系統的 php-devel。
MaxMind DB 格式包括 128 位元無符號整數作為型別。儘管目前沒有 MaxMind 分散式資料庫使用此類型,但純 PHP 閱讀器和 C 擴充功能都支援此類型。純 PHP 讀取器需要 gmp 或 bcmath 來讀取具有 128 位元無符號整數的資料庫。
目前,C 擴充以十六進位字串(前綴為「0x」)的形式傳回整數,純 PHP 閱讀器以十進位字串(無前綴)的形式傳回該整數。使讀取器實作始終傳回整數的十六進位或十進位表示形式的任何變更都不會被視為重大變更。
請使用 GitHub 問題追蹤器回報此程式碼的所有問題。
如果您遇到的 MaxMind 服務問題並非特定於客戶端 API,請參閱我們的支援頁面。
該函式庫需要 PHP 7.2 或更高版本。
使用純 PHP API 讀取某些資料庫可能需要 GMP 或 BCMath 擴充。
鼓勵補丁和拉取請求。所有代碼都應遵循 PSR-1 和 PSR-2 風格指南。請盡可能包含單元測試。
MaxMind DB Reader PHP API 使用語意版本控制。
本軟體版權所有 (c) 2014-2024,歸 MaxMind, Inc. 所有。
這是免費軟體,根據 Apache 授權 2.0 版獲得許可。