librarymarket / maxmind-db-reader
An unofficial library to facilitate reading the MaxMind database file format.
Installs: 16 948
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.3
Suggests
- ext-bcmath: To support the decoding of unsigned integers of more than 31 bits in length
- ext-gmp: To support the decoding of unsigned integers of more than 31 bits in length
README
An unofficial library to facilitate reading the MaxMind database file format.
Why?
MaxMind's open source PHP library for reading *.mmdb
files is incompatible
with the GNU General Public License, version 2. Because of this, we decided to
implement our own database reader based off of MaxMind's open file format
specifications and their Ruby library for the same purpose (which was
dual-licensed under MIT at the time this library was written).
Requirements
ext-bcmath
or ext-gmp
may be required for decoding unsigned integers of more
than 31 bits in length, but this depends on the contents of the database you're
trying to read.
Usage
- Create an instance of the database reader by providing the path to your MaxMind database file on disk.
- Invoke
Reader::searchForAddress(string $ip_address, int &$depth = 0): array
to retrieve information about the IP address from the database.- If the IP address wasn't found in the database, an empty array is returned.
- If the optional second argument is supplied, it will be populated with the bit depth at which the address was found. This is the netmask of the resulting information.
$reader = new \LibraryMarket\MaxMind\Database\Reader('/path/to/database.mmdb'); // Search for an IP address in human-readable format. $reader->searchForAddress('127.0.0.1'); $reader->searchForAddress('::1');
License
Copyright (c) 2022 Library Solutions, LLC (et al.).
This is free software, licensed under the MIT License. See LICENSE.txt
in this
project's root directory for the full license text.