Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

A fast, in-memory GeoIP data lookup module

Project description


A fast, flexible, in-memory GeoIP lookup library.

By default FastGeo will use the GeoLite country database, distributed free by MaxMind. It contains IP ranges and the countries they’re assigned to. The library can easily be extended (and will be later) to use the GeoLite database to also contain city and lat/lon data.


` from FastGeo import GeoDB geo = GeoDB() node = geo.lookup("") print node.country_code # "US" print node.country_name # "United States" `

Note: It is recommended that the GeoDB object be instantiated at startup and not on demand as it can take a few seconds to load and parse the database file.

The GeoDB constructor will accept the path to a CSV file, although it defaults to the file distributed with the library.

The default parser assumes the following csv format: “<ip lower bound>”,”<ip upper bound>”,”<long lower bound>”,”<long upper bound>”,”<country code>”,”<country name>”

To parse other formats, inherit from FastGeo.parsers.DbParser and implement .parse(), .create_node(), and .create_value(). To use the parser, pass a new instance to the GeoDB constructor.

This product includes GeoLite data created by MaxMind, available from <a href=””></a>.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for FastGeo, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size FastGeo-0.1.2-py2.7.egg (1.3 MB) File type Egg Python version 2.7 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page