All geoip data, including geography and geoip mapping is stored in the database. To avoid unnecessary database hits user location is stored in a cookie.
Django-geoip-redis supports only ipgeobase geography, which consist of following entities: Country, Region, City. Database maintains normalized relationships between all entities, i.e. Country has many Regions, Region has many Cities, ISP has many Country, Provider has many ISP.
Country(code, name)
Area(id, country_id, name)
City(id, area_id, name, latitude, longitude)
ISP(id, name, country_id)
Provider(id, name, ranges)
There is currently no infrastructure to use alternative geoip backends, but it’s planned for future releases. Pull requests are also welcome.
ipgeobase.ru is a database of Russian and Ukranian IP networks mapped to geographical locations.
It’s maintained by RuCenter and updated daily.
As of 11 Nov 2013 it contains info on 992 cities and 152333 Ip Ranges (some networks doesn’t belong to CIS).
Here a is demo of ip detection: http://ipgeobase.ru/