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/)


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM