自1.9版以来已弃用 该模块已被弃用,支持django.contrib.gis.geoip2,它支持IPv6和GeoLite2数据库格式。
GeoIP
对象是MaxMind GeoIP C API的ctypes包装器。 [1]
为了执行基于IP的地理位置,GeoIP
对象需要使用二进制格式的GeoIP C库和GeoIP 国家/地区或城市数据集CSV文件将不工作!)。 这些数据集可以从MaxMind下载。 抓取GeoLiteCity.dat.gz
和GeoLiteCountry/GeoIP.dat.gz
文件,并将其解压缩到与您设置的GEOIP_PATH
对应的目录中在您的设置。 有关更多详细信息,请参阅下面的示例和参考。
假设您安装了GeoIP C库,以下是其使用示例:
>>> from django.contrib.gis.geoip import GeoIP
>>> g = GeoIP()
>>> g.country('google.com')
{'country_code': 'US', 'country_name': 'United States'}
>>> g.city('72.14.207.99')
{'area_code': 650,
'city': 'Mountain View',
'country_code': 'US',
'country_code3': 'USA',
'country_name': 'United States',
'dma_code': 807,
'latitude': 37.419200897216797,
'longitude': -122.05740356445312,
'postal_code': '94043',
'region': 'CA'}
>>> g.lat_lon('salon.com')
(37.789798736572266, -122.39420318603516)
>>> g.lon_lat('uh.edu')
(-95.415199279785156, 29.77549934387207)
>>> g.geos('24.124.1.80').wkt
'POINT (-95.2087020874023438 39.0392990112304688)'
GeoIP
Settings¶GeoIP
API¶GeoIP
对象不需要任何参数即可使用默认设置。 但是,至少应该使用GeoIP数据集的位置路径设置GEOIP_PATH
设置。 以下初始化关键字可用于自定义任何默认值。
关键字参数 | 描述 |
---|---|
路径 |
基本目录到GeoIP数据所在的位置或城市或国家/地区数据文件(.dat)所在的完整路径。 假设城市和国家数据集都位于此目录中;覆盖GEOIP_PATH 设置属性。 |
高速缓存 |
打开GeoIP数据集时的缓存设置,并且可以是与GEOIP_CHECK_CACHE ,GEOIP_MEMORY_CACHE ,GEOIP_STANDARD 和GEOIP_INDEX_CACHE GeoIPOptions C API设置。
默认为0(GEOIP_STANDARD )。 |
国家 |
GeoIP国家/地区数据文件的名称。 默认为GeoIP.dat 。 设置此关键字将覆盖GEOIP_COUNTRY 设置属性。 |
市 |
GeoIP城市数据文件的名称。 默认为GeoLiteCity.dat 。 设置此关键字将覆盖GEOIP_CITY 设置属性。 |
GeoIP
Methods¶所有以下查询例程可以采用字符串IP地址或完全限定域名(FQDN)。 例如,'205.186.163.125'
和'djangoproject.com'
都将是有效的查询参数。
返回给定查询的城市信息字典。 字典中的一些值可能未定义(None
)。
返回具有给定查询的国家/地区代码和国家/地区的字典。
仅返回与查询对应的国家/地区代码。
仅返回与查询对应的国家/地区名称。
返回一个(经度,纬度)的坐标元组。
返回一个(经度,纬度)的坐标元组。
返回(纬度,经度)的坐标元组,
返回与查询对应的django.contrib.gis.geos.Point
对象。
GeoIP的。
country_info T0> ¶ T1>
此属性返回有关GeoIP国家/地区数据库的信息。
GeoIP的。
city_info T0> ¶ T1>
此属性返回有关GeoIP城市数据库的信息。
GeoIP的。
信息 T0> ¶ T1>
此属性返回有关所有GeoIP数据库(城市和国家/地区)以及GeoIP C库版本(如果支持)的信息。
这些方法的存在,以简化与使用MaxMind的现有Python API的任何代码的兼容性。
此类方法从给定的数据库路径和给定的缓存设置实例化GeoIP对象。
GeoIP的。
region_by_addr T0>(查询 T1>)¶ T2>
GeoIP的。
region_by_name T0>(查询 T1>)¶ T2>
GeoIP的。
record_by_addr T0>(查询 T1>)¶ T2>
GeoIP的。
record_by_name T0>(查询 T1>)¶ T2>
GeoIP的。
country_code_by_addr T0>(查询 T1>)¶ T2>
GeoIP的。
country_code_by_name T0>(查询 T1>)¶ T2>
GeoIP的。
country_name_by_addr T0>(查询 T1>)¶ T2>
GeoIP的。
country_name_by_name T0>(查询 T1>)¶ T2>
脚注
[1] | GeoIP是马萨诸塞州波士顿的MaxMind有限责任公司的注册商标。 |
2017年9月6日