هذه هي 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
إليه.
بعد تثبيت التبعيات، تحتاج إلى طلب أداة التحميل التلقائي للملحن من الكود الخاص بك:
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 ' );
تتوفر RPMs في مستودع 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 غير خاصة بواجهة برمجة تطبيقات العميل، فيرجى الاطلاع على صفحة الدعم الخاصة بنا.
تتطلب هذه المكتبة PHP 7.2 أو أحدث.
قد تكون هناك حاجة إلى ملحق GMP أو BCMath لقراءة بعض قواعد البيانات باستخدام PHP API النقي.
يتم تشجيع التصحيحات وطلبات السحب. يجب أن تتبع جميع التعليمات البرمجية إرشادات نمط PSR-1 وPSR-2. يرجى تضمين اختبارات الوحدة كلما أمكن ذلك.
يستخدم MaxMind DB Reader PHP API الإصدار الدلالي.
حقوق الطبع والنشر لهذا البرنامج (c) 2014-2024 محفوظة لشركة MaxMind, Inc.
هذا برنامج مجاني، مرخص بموجب ترخيص Apache، الإصدار 2.0.