用 GeoIP2 进行地理定位
为了执行基于 IP 的地理定位, GeoIP2 对象需要 和二进制格式的 GeoIP Country
和/或 City
数据集 (CSV 文件将无法使用!)。抓取 GeoLite2-Country.mmdb.gz
和 GeoLite2-City.mmdb.gz
文件,并将其解压到与 配置对应的目录中。
另外,建议安装 libmaxminddb C 库 ,这样 geoip2
就可以利用 C 库更快的速度。
下面以其使用为例:
class GeoIP2
(path=None, cache=0, country=None, city=None)
GeoIP
对象不需要任何参数来使用默认设置。然而,至少 配置应该用你 GeoIP 数据集位置的路径来设置。以下初始化关键字可用于自定义任何默认配置。
classmethod GeoIP2.open
(path, cache)
该类方法从给定的数据库路径和给定的缓存配置中实例化 GeoIP 对象。
查询
以下所有的查询程序可以采用一个字符串 IP 地址或一个完全限定域名(FQDN)。例如,'205.186.163.125'
和 'djangoproject.com'
都是有效的查询参数。
GeoIP2.city
(query)
(query)
返回给定查询的国家代码和国家的字典。
GeoIP2.country_code
(query)
返回与查询对应的国家代码。
GeoIP2.country_name
(query)
返回与查询对应的国家名称。
GeoIP2.coords
(query)
返回 (经度, 纬度) 的坐标元组。
GeoIP2.lon_lat
(query)
GeoIP2.lat_lon
(query)
返回 (经度, 纬度) 的坐标元组,
GeoIP2.geos
(query)
返回与查询对应的 对象。
GEOIP_PATH
字符串或 指定 GeoIP 数据文件所在的目录。除非在初始化 GeoIP2 对象时用 path
关键字手动指定,否则该配置是 必须的。
GeoIP 国家数据文件的基名。默认为 'GeoLite2-Country.mmdb'
。
GEOIP_CITY
GeoIP 城市数据文件的基名。默认为 'GeoLite2-City.mmdb'
。
exception GeoIP2Exception
当调用底层的 库时发生错误而引发的异常。
[1] | GeoIP(R) 是 MaxMind, Inc 的注册商标。 |