GeoIP2
对象是MaxMind geoip2 Python库的包装器。 [1] T0>
为了执行基于IP的地理定位,GeoIP2
对象需要geoip2 Python库和GeoIP Country和/或City 二进制格式的数据集(CSV文件不起作用)。 抓取GeoLite2-Country.mmdb.gz
和GeoLite2-City.mmdb.gz
文件,并将其解压缩到与GEOIP_PATH
设置相对应的目录中。
另外,建议安装libmaxminddb C库,以便geoip2
可以利用C库的速度更快。
以下是其使用示例:
>>> from django.contrib.gis.geoip2 import GeoIP2
>>> g = GeoIP2()
>>> g.country('google.com')
{'country_code': 'US', 'country_name': 'United States'}
>>> g.city('72.14.207.99')
{'city': 'Mountain View',
'country_code': 'US',
'country_name': 'United States',
'dma_code': 807,
'latitude': 37.419200897216797,
'longitude': -122.05740356445312,
'postal_code': '94043',
'region': 'CA'}
>>> g.lat_lon('salon.com')
(39.0437, -77.4875)
>>> g.lon_lat('uh.edu')
(-95.4342, 29.834)
>>> g.geos('24.124.1.80').wkt
'POINT (-97 38)'
GeoIP2
(path = None,cache = 0,country = None,city = T4>)¶ T5>GeoIP
对象不需要任何参数来使用默认设置。 但是,至少应该使用您的GeoIP数据集的位置路径设置GEOIP_PATH
设置。 可以使用以下初始化关键字来自定义任何默认值。
关键字参数 | 描述 |
---|---|
路径 |
GeoIP数据所在的基本目录或城市或国家/地区数据文件(.mmdb )所在的完整路径。 假设城市和国家数据集都位于此目录中;覆盖GEOIP_PATH 设置。 |
高速缓存 |
打开GeoIP数据集时的缓存设置。 可以是对应于MODE_AUTO ,MODE_MMAP_EXT ,MODE_MMAP 和GEOIP_INDEX_CACHE MODE_MEMORY C API设置。 默认为0(MODE_AUTO )。 |
国家 |
GeoIP国家/地区数据文件的名称。 默认为GeoLite2-Country.mmdb 。 设置此关键字将覆盖GEOIP_COUNTRY 设置。 |
市 |
GeoIP城市数据文件的名称。 默认为GeoLite2-City.mmdb 。 设置此关键字将覆盖GEOIP_CITY 设置。 |
所有以下查询例程都可以使用字符串IP地址或完全限定域名(FQDN)。 例如,'205.186.163.125'
和'djangoproject.com'
将是有效的查询参数。
GeoIP2。
城市 T0>(查询 T1>)¶ T2>
返回给定查询的城市信息字典。 字典中的某些值可能未定义(None
)。
GeoIP2。
国家 T0>(查询 T1>)¶ T2>
返回具有给定查询的国家/地区代码和国家/地区的字典。
GeoIP2。
COUNTRY_CODE T0>(查询 T1>)¶ T2>
返回与查询对应的国家/地区代码。
GeoIP2。
COUNTRY_NAME T0>(查询 T1>)¶ T2>
返回与查询对应的国家名称。
2017年9月6日