自学内容网 自学内容网

python处理IP对应城市省份

python处理IP对应城市省份

IP地理地址库geoip2用法

数据包下载

数据包下载地址(需要注册)
https://www.maxmind.com/en/accounts/258630/geoip/downloads
考虑到注册麻烦,可以到下面这个github的链接去直接下载
https://github.com/Hackl0us/GeoIP2-CN.git
在这里插入图片描述
在这里插入图片描述

代码

import os
import pprint
import geoip2.database

def query_ip_location(ip_address, locales='zh-CN'):
    """
    查询IP地址的地理位置信息
    :param ip_address: IP地址
    :param locales: 国际化(如果locales不指定的话会默认输出英文我这里指定了中文)
    :return: 返回IP信息
    """

    #db_path = os.path.dirname(__file__) + '/Country.mmdb'
    db_path = r'E:\ghm\加速器\GeoLite2-City.mmdb'
    if not os.path.exists(db_path):
        raise FileNotFoundError('GeoLite2-City数据库不存在')
    try:
        with geoip2.database.Reader(db_path, locales=[locales]) as reader:
            response = reader.city(ip_address)
            location_info = {
                'country_name': response.country.name,  # 国家名称,中文显示
                'country_iso_code': response.country.iso_code,  # 国家ISO代码
                'province_name': response.subdivisions.most_specific.name,  # 省份名称,中文显示
                'province_iso_code': response.subdivisions.most_specific.iso_code,  # 省份ISO代码
                'city_name': response.city.name,  # 城市名称,中文显示
                'postal_code': response.postal.code,  # 邮政编码
                'latitude': response.location.latitude,  # 纬度
                'longitude': response.location.longitude,  # 经度
                'time_zone': response.location.time_zone,  # 时区
                'continent_name': response.continent.name,  # 大陆名称,中文显示
                'continent_code': response.continent.code  # 大陆代码
            }
            return location_info
    except Exception as e:
        print(f"查询IP地址时发生错误: {e}")
        return {}

if __name__ == '__main__':
    # 使用示例
    ip = '113.68.255.182'
    ip_info = query_ip_location(ip)
    pprint.pprint(ip_info['province_name']+ip_info['city_name'])

展示结果

在这里插入图片描述
这是展示的详细数据:
在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_51633501/article/details/137783783

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!