用 GeoIP2 进行地理定位

    为了执行基于 IP 的地理定位, GeoIP2 对象需要 和二进制格式的 GeoIP Country 和/或 City 数据集 (CSV 文件将无法使用!)。抓取 GeoLite2-Country.mmdb.gzGeoLite2-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 的注册商标。