Python|python ip转地址;Python IP to GEO

例一: 使用geoip2库来实现
具体使用如下:
注意需要下载GeoLite2-City.mmdb库到本地。
下载==>http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
geoip2返回的具体信息可以先打印出来,格式稍有差异需要
什么再调整地址的获取方式。
这种方式大多情况都可以拿到一个大致地址。如果是国内IP建议结合百度地图实现,如例二。

#!/usr/bin/env python # _*_ coding:utf-8 _*_ import sys import geoip2.database import requests import json reload(sys) sys.setdefaultencoding('utf8') try: # 这里注意文件路径 reader = geoip2.database.Reader('./GeoLite2-City_20191224/GeoLite2-City.mmdb') ip = sys.argv[1] #print "" % ip response = reader.city(ip) country = response.country.names['zh-CN'] if response.country.names.has_key('zh-CN') else " " city = response.city.names['zh-CN'] if response.city.names.has_key('zh-CN') else " " country_name = country.encode("UTF_8") print (country+" "+city).encode("UTF-8") except Exception as e: print e print " "

例二: 调用百度地图开放平台的接口,来获取国内IP的详细地址。目前可以得到如下信息:
{ "address": "CN|北京|北京|None|ALIBABA|0|0", "content": { "address_detail": { "province": "北京市", "city": "北京市", "district": "", "street": "", "street_number": "", "city_code": 131 }, "address": "北京市", "point": { "y": "4825007.72", "x": "12950160.97" } }, "status": 0 }

代码:
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import sys import geoip2.database import requests import json reload(sys) sys.setdefaultencoding('utf8') try: reader = geoip2.database.Reader('./GeoLite2-City_20191224/GeoLite2-City.mmdb') ip = sys.argv[1] response = reader.city(ip) country = response.country.names['zh-CN'] if response.country.names.has_key('zh-CN') else " " city = response.city.names['zh-CN'] if response.city.names.has_key('zh-CN') else " " country_name = country.encode("UTF_8") if country_name == '中国': result = requests.get("http://api.map.baidu.com/location/ip?ip="+ip+"&ak=GbR1YfmFzR**************pyIxkvG&coor%20=%20bd09ll") if result.status_code == 200: result = json.loads(result.content) address = result["content"]["address"] print address else: print "中国" else: print (country+" "+city).encode("UTF-8") except Exception as e: print e print " "

【Python|python ip转地址;Python IP to GEO】百度地图开放平台的信息,还有api文档点这里http://lbsyun.baidu.com/
ak是在平台上生成的KEY,免费。

    推荐阅读