นี่คือ PHP API สำหรับการอ่านไฟล์ MaxMind DB 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 autoloader จากโค้ดของคุณ:
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 จัดเตรียมส่วนขยาย C เสริมที่เป็นการแทนที่แบบดรอปอินสำหรับ MaxMindDbReader
หากต้องการใช้ส่วนขยายนี้ คุณต้องติดตั้ง Reader API ตามที่อธิบายไว้ข้างต้น และติดตั้งส่วนขยายตามที่อธิบายไว้ด้านล่าง หากคุณใช้ตัวโหลดอัตโนมัติ ก็ไม่จำเป็นต้องเปลี่ยนแปลงโค้ดของคุณ
ขั้นแรกให้ติดตั้ง libmaxminddb ตามที่อธิบายไว้ในไฟล์ README.md หลังจากติดตั้ง libmaxmindb สำเร็จแล้ว คุณสามารถติดตั้งส่วนขยายได้จาก pecl:
pecl install maxminddb
หรือคุณสามารถติดตั้งได้จากแหล่งที่มา โดยเรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีระดับบนสุดของการแจกจ่ายนี้:
cd ext
phpize
./configure
make
make test
sudo make install
จากนั้นคุณจะต้องโหลดส่วนขยายของคุณ วิธีที่แนะนำคือเพิ่มสิ่งต่อไปนี้ลงในไฟล์ php.ini
ของคุณ:
extension=maxminddb.so
หมายเหตุ: คุณอาจต้องติดตั้งแพ็คเกจการพัฒนา PHP บนระบบปฏิบัติการของคุณ เช่น php5-dev สำหรับระบบที่ใช้ Debian หรือ php-devel สำหรับระบบปฏิบัติการ RedHat/Fedora
รูปแบบ MaxMind DB ประกอบด้วยจำนวนเต็มที่ไม่ได้ลงนาม 128 บิตเป็นประเภท แม้ว่าในปัจจุบันจะไม่มีฐานข้อมูลที่กระจาย MaxMind ใช้ประเภทนี้ แต่ทั้งตัวอ่าน PHP ล้วนและส่วนขยาย C ก็รองรับประเภทนี้ โปรแกรมอ่าน PHP ล้วนต้องใช้ gmp หรือ bcmath เพื่ออ่านฐานข้อมูลที่มีจำนวนเต็ม 128 บิตที่ไม่ได้ลงนาม
ขณะนี้จำนวนเต็มถูกส่งกลับเป็นสตริงเลขฐานสิบหก (นำหน้าด้วย "0x") โดยส่วนขยาย C และสตริงทศนิยม (ไม่มีคำนำหน้า) โดยโปรแกรมอ่าน PHP ล้วนๆ การเปลี่ยนแปลงใด ๆ ที่ทำให้การใช้งานเครื่องอ่านส่งคืนการแสดงเลขฐานสิบหกหรือทศนิยมของจำนวนเต็มเสมอจะไม่ถือเป็นการเปลี่ยนแปลงที่แตกหัก
โปรดรายงานปัญหาทั้งหมดเกี่ยวกับโค้ดนี้โดยใช้เครื่องมือติดตามปัญหา GitHub
หากคุณประสบปัญหากับบริการ MaxMind ที่ไม่เฉพาะเจาะจงกับ API ไคลเอ็นต์ โปรดดูหน้าการสนับสนุนของเรา
ไลบรารีนี้ต้องการ PHP 7.2 หรือสูงกว่า
อาจจำเป็นต้องใช้ส่วนขยาย GMP หรือ BCMath เพื่ออ่านฐานข้อมูลบางส่วนโดยใช้ PHP API ล้วนๆ
สนับสนุนคำขอแพตช์และดึง โค้ดทั้งหมดควรเป็นไปตามแนวทางสไตล์ PSR-1 และ PSR-2 โปรดรวมการทดสอบหน่วยทุกครั้งที่เป็นไปได้
MaxMind DB Reader PHP API ใช้การกำหนดเวอร์ชันเชิงความหมาย
ซอฟต์แวร์นี้เป็นลิขสิทธิ์ (c) 2014-2024 โดย MaxMind, Inc.
นี่เป็นซอฟต์แวร์ฟรีที่ได้รับอนุญาตภายใต้ Apache License เวอร์ชัน 2.0