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는 Semantic Versioning을 사용합니다.
이 소프트웨어는 MaxMind, Inc.의 저작권(c) 2014-2024입니다.
이것은 Apache 라이센스 버전 2.0에 따라 라이센스가 부여된 무료 소프트웨어입니다.