Ini adalah API PHP untuk membaca file MaxMind DB. MaxMind DB adalah format file biner yang menyimpan data yang diindeks berdasarkan subnet alamat IP (IPv4 atau IPv6).
Kami merekomendasikan menginstal paket ini dengan Composer.
Untuk mengunduh Composer, jalankan di direktori root proyek Anda:
curl -sS https://getcomposer.org/installer | php
Anda sekarang harus memiliki file composer.phar
di direktori proyek Anda.
Jalankan di root proyek Anda:
php composer.phar require maxmind-db/reader:~1.0
Anda sekarang harus memiliki file composer.json
dan composer.lock
serta direktori vendor
di direktori proyek Anda. Jika Anda menggunakan sistem kontrol versi, composer.json
harus ditambahkan ke dalamnya.
Setelah menginstal dependensi, Anda perlu memerlukan pemuat otomatis Komposer dari kode Anda:
require ' vendor/autoload.php ' ;
Jika Anda tidak ingin menggunakan Komposer karena alasan tertentu, autoload.php
khusus disediakan untuk Anda di root proyek. Untuk menggunakan perpustakaan, cukup sertakan file itu,
require ( ' /path/to/MaxMind-DB-Reader-php/autoload.php ' );
dan kemudian membuat instance kelas pembaca secara normal:
use MaxMind Db Reader ;
$ reader = new Reader ( ' example.mmdb ' );
RPM tersedia di repositori resmi Fedora.
Untuk menginstal di Fedora, jalankan:
dnf install php-maxminddb
Untuk menginstal di CentOS atau RHEL 7, pertama-tama aktifkan repositori EPEL lalu jalankan:
yum install php-maxminddb
Harap dicatat bahwa paket-paket ini tidak dikelola oleh 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 menyediakan ekstensi C opsional yang merupakan pengganti drop-in untuk MaxMindDbReader
. Untuk menggunakan ekstensi ini, Anda harus menginstal Reader API seperti yang dijelaskan di atas dan menginstal ekstensi seperti yang dijelaskan di bawah. Jika Anda menggunakan pemuat otomatis, tidak diperlukan perubahan apa pun pada kode Anda.
Pertama instal libmaxminddb seperti yang dijelaskan dalam file README.md-nya. Setelah berhasil menginstal libmaxmindb, Anda dapat menginstal ekstensi dari pecl:
pecl install maxminddb
Alternatifnya, Anda dapat menginstalnya dari sumbernya. Untuk melakukannya, jalankan perintah berikut dari direktori tingkat atas distribusi ini:
cd ext
phpize
./configure
make
make test
sudo make install
Anda kemudian harus memuat ekstensi Anda. Metode yang disarankan adalah menambahkan yang berikut ini ke file php.ini
Anda:
extension=maxminddb.so
Catatan: Anda mungkin perlu menginstal paket pengembangan PHP di OS Anda seperti php5-dev untuk sistem berbasis Debian atau php-devel untuk sistem berbasis RedHat/Fedora.
Format MaxMind DB menyertakan integer 128-bit yang tidak ditandatangani sebagai tipenya. Meskipun saat ini tidak ada database terdistribusi MaxMind yang menggunakan jenis ini, baik pembaca PHP murni maupun ekstensi C mendukung jenis ini. Pembaca PHP murni memerlukan gmp atau bcmath untuk membaca database dengan bilangan bulat 128-bit yang tidak ditandatangani.
Integer saat ini dikembalikan sebagai string heksadesimal (diawali dengan "0x") oleh ekstensi C dan string desimal (tanpa awalan) oleh pembaca PHP murni. Perubahan apa pun yang membuat implementasi pembaca selalu mengembalikan representasi bilangan bulat heksadesimal atau desimal TIDAK akan dianggap sebagai perubahan yang dapat menyebabkan gangguan.
Silakan laporkan semua masalah dengan kode ini menggunakan pelacak masalah GitHub.
Jika Anda mengalami masalah dengan layanan MaxMind yang tidak spesifik pada API klien, silakan lihat halaman dukungan kami.
Perpustakaan ini memerlukan PHP 7.2 atau lebih tinggi.
Ekstensi GMP atau BCMath mungkin diperlukan untuk membaca beberapa database menggunakan API PHP murni.
Patch dan permintaan penarikan dianjurkan. Semua kode harus mengikuti pedoman gaya PSR-1 dan PSR-2. Harap sertakan pengujian unit bila memungkinkan.
MaxMind DB Reader PHP API menggunakan Versi Semantik.
Perangkat lunak ini adalah Hak Cipta (c) 2014-2024 oleh MaxMind, Inc.
Ini adalah perangkat lunak gratis, berlisensi di bawah Lisensi Apache, Versi 2.0.