This is a beta release. The API may change before the first production release.
This is a Python extension for reading MaxMind DB files. MaxMind DB is a binary file format that stores data indexed by IP address subnets (IPv4 or IPv6).
You must have the libmaxminddb C library installed before installing this extension.
To install the MaxMind DB extension, type:
$ pip install maxminddb
If you are not able to use pip, you may also use easy_install from the source directory:
$ easy_install .
To use this module, you must first download or create a MaxMind DB file. We
provide free GeoLite2 databases. These files must be
decompressed with gunzip
.
After you have obtained a database and importing the module, you must create a
Reader
object, providing the path to the file as the first argument to the
constructor. After doing this, you may call the get
method with an IP
address on the object. This method will return the corresponding values for
the IP address from the database (e.g., a dictionary for GeoIP2/GeoLite2
databases). If the database does not contain a record for that IP address, the
method will return None
.
>>> import maxminddb
>>>
>>> reader = maxminddb.Reader('GeoLite2-City.mmdb')
>>> reader.get('1.1.1.1')
{'country': ... }
>>>
>>> # The optional 'close' method will release the resources to the
>>> # system immediately.
>>> reader.close()
The module will return an InvalidDatabaseError
if the database is corrupt
or otherwise invalid. A ValueError
will be thrown if you look up an
invalid IP address or an IPv6 address in an IPv4 database.
This code requires CPython 2.6+ or 3.3+. Older versions are not supported.
The MaxMind DB Python extension uses Semantic Versioning.
Please report all issues with this code using the GitHub issue tracker
If you are having an issue with a MaxMind service that is not specific to this API, please contact MaxMind support for assistance.