python绝技Geolite2-city.mmd 使用方法。“Invalid database type, expected City”

一在使用python绝技中的代码时,下载的Geolite是.dat文件

import pygeoip




def PrintRecord(tgt):
    try:
        gi = pygeoip.GeoIP('./GeoLiteCity/GeoLiteCity.mmdb')
        rec = gi.record_by_name(tgt)
        city = rec['city']
        print(city)
    except Exception as e:
        print(e)
        return



if __name__ == '__main__':
    tgt = '220.168.56.116'
    PrintRecord(tgt)

报错“Invalid database type, expected City”

二、现在下载的是Geolite2-city.mmdb文件格式不一样

下载网址:https://dev.maxmind.com/geoip/geoip2/geolite2/

import geoip2.database
import sys

ip = '172.104.68.126'

reader = geoip2.database.Reader('./GeoLiteCity/GeoLiteCity.mmdb')

data = reader.city(ip)

print("IP Address: ", ip)
print("Country:", data.country.name)
print("Subdivisions: ", data.subdivisions.most_specific.name)
print("City: ", data.city.name)
print("Latitude: ", data.location.latitude)
print("Longitude: ", data.location.longitude)

 

输出:

IP Address:  172.104.68.126
Country: Japan
Subdivisions:  Tokyo
City:  Tokyo
Latitude:  35.6882
Longitude:  139.7532
 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值