1-Python之geoip2模块

目录

    工作中难免会遇到处理ip相关的需求,比如根据ip的请求的地理位置,访问频率来调整业务。这里介绍一个处理ip相关的模块geoip2

    首先来说安装:

    pip install geoip2
    

    安装后,我们需要下载一个ip库,用来匹配解析与ip相关的参数。点击下载,在打开的页面中,下拉选择Downloads,这里我们选择粒度细分到城市的下载链接,这里仅介绍mmdb格式的使用方式。

    在下载到本地后,我们就可以通过传递ip或查看该ip的相关信息了。

    import geoip2.database
    client = geoip2.database.Reader(r'.\my_data\GeoLite2-City.mmdb')
    response = client.city('128.101.101.101')
    print(response.country.iso_code)    # 国际标准码中的位置
    print(response.location.latitude)   # 维度
    print(response.location.longitude)   # 经度
    print(response.location.time_zone)   # 时区
    print(response.city.name)  # 城市 Saint Paul
    print(response)   # 更多参考 ↓
    '''
    geoip2.models.City({'city': {'geoname_id': 5045360, 'names': {'de': 'Saint Paul', 'en': 'Saint Paul', 'es': 'Saint Paul', 'fr': 'Saint Paul', 'ja': 'セントポール', 'pt-BR': 'Saint Paul', 'ru': 'Сент-Пол', 'zh-CN': '圣保罗'}}, 'continent': {'code': 'NA', 'geoname_id': 6255149, 'names': {'de': 'Nordamerika', 'en': 'North America', 'es': 'Norteamérica', 'fr': 'Amérique du Nord', 'ja': '北アメリカ', 'pt-BR': 'América do Norte', 'ru': 'Северная Америка', 'zh-CN': '北美洲'}}, 'country': {'geoname_id': 6252001, 'iso_code': 'US', 'names': {'de': 'USA', 'en': 'United States', 'es': 'Estados Unidos', 'fr': 'États-Unis', 'ja': 'アメリカ合衆国', 'pt-BR': 'Estados Unidos', 'ru': 'США', 'zh-CN': '美国'}}, 'location': {'accuracy_radius': 20, 'latitude': 44.9548, 'longitude': -93.1551, 'metro_code': 613, 'time_zone': 'America/Chicago'}, 'postal': {'code': '55104'}, 'registered_country': {'geoname_id': 6252001, 'iso_code': 'US', 'names': {'de': 'USA', 'en': 'United States', 'es': 'Estados Unidos', 'fr': 'États-Unis', 'ja': 'アメリカ合衆国', 'pt-BR': 'Estados Unidos', 'ru': 'США', 'zh-CN': '美国'}}, 'subdivisions': [{'geoname_id': 5037779, 'iso_code': 'MN', 'names': {'en': 'Minnesota', 'es': 'Minnesota', 'fr': 'Minnesota', 'ja': 'ミネソタ州', 'pt-BR': 'Minesota', 'ru': 'Миннесота', 'zh-CN': '明尼苏达州'}}], 'traits': {'ip_address': '128.101.101.101'}}, ['en'])
    '''
    

    that's all see also:[MaxMind GeoIP2 Python API]() | [PYPI:geoip2 2.9.0]() | [GeoLite2 Free Downloadable Databases](https://dev.maxmind.com/geoip/geoip2/geolite2/)
    posted @ 2019-05-13 14:08  听雨危楼  阅读(5830)  评论(0编辑  收藏  举报