python 获取 ip 详细信息

python获取ip信息(国家、城市等)

这里我说下两种方法,
一种是 pygeoip 模块 查询 .dat ip数据库文件查询ip信息
第二种是 geoip2.database 模块 查询 .mmdb ip数据库文件查询ip信息

好,这里一个个说一下!

pygeoip 模块

直接上代码

import pygeoip

giv4 = pygeoip.GeoIP('GeoLiteCity.dat')
giv6 = pygeoip.GeoIP('GeoLiteCityv6.dat')

response_v4 = giv4.record_by_addr(ip)
response_v6 = giv6.record_by_addr(ip)

print(response_v6)

下面是输出的结果:

{'city': u'Jiaxing', 'region_code': u'02', 'area_code': 0, 'time_zone': 'Asia/Shanghai', 'dma_code': 0, 'metro_code': None, 'country_code3': 'CHN', 'latitude': 30.752199999999988, 'postal_code': None, 'longitude': 120.75, 'country_code': 'CN', 'country_name': 'China', 'continent': 'AS'}

# 输出的结果是一个字典,根据自己想要的取值就行了

geoip2.database 模块

这个也不墨迹,也直接上代码

import geoip2.database

geo_city = geoip2.database.Reader('GeoLite2-City.mmdb')
geo_asn = geoip2.database.Reader('GeoLite2-ASN.mmdb')

response = geo_city.city(ip) # 可以获取到ip的详细信息
response_asn = geo_asn.asn(ip)  # 可以获取到asn编码、运营商

print(response)
print(response_asn)

看结果:

response-> 其实也就是个字典,按字典的方式取值就行
geoip2.models.City({u'registered_country': {u'geoname_id': 1814991, u'iso_code': u'CN', u'names': {u'ru': u'Китай', u'fr': u'Chine', u'en': u'China', u'de': u'China', u'zh-CN': u'中国', u'pt-BR': u'China', u'ja': u'中国', u'es': u'China'}}, u'country': {u'geoname_id': 1814991, u'iso_code': u'CN', u'names': {u'ru': u'Китай', u'fr': u'Chine', u'en': u'China', u'de': u'China', u'zh-CN': u'中国', u'pt-BR': u'China', u'ja': u'中国', u'es': u'China'}}, 'traits': {'prefix_len': 15, 'ip_address': '183.141.110.74'}, u'subdivisions': [{u'geoname_id': 1784764, u'iso_code': u'ZJ', u'names': {u'zh-CN': u'浙江省', u'fr': u'Province de Zhejiang', u'en': u'Zhejiang'}}], u'location': {u'latitude': 30.294, u'accuracy_radius': 50, u'time_zone': u'Asia/Shanghai', u'longitude': 120.1619}, u'continent': {u'geoname_id': 6255147, u'code': u'AS', u'names': {u'ru': u'Азия', u'fr': u'Asie', u'en': u'Asia', u'de': u'Asien', u'zh-CN': u'亚洲', u'pt-BR': u'\xc1sia', u'ja': u'アジア', u'es': u'Asia'}}}, ['en'])

response_asn->
geoip2.models.ASN({'ip_address': '183.141.110.74', u'autonomous_system_organization': u'Chinanet', 'prefix_len': 14, u'autonomous_system_number': 4134})

相信看到这里大家也就明白怎么用了!
这里有个重点说一下,使用这两种方法一定要有 .dat 文件和 .mmdb 文件,找不到文件的可以看我博客,我博客有说如何下载这两个ip数据库文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值