您现在的位置是: 网站首页 >Python Python

分享几个IP归属地查询接口及Python实现方法

admin2019年9月11日 10:44 Python 1013人已围观

直接上代码吧,用`requests`库实现 ```python import requests import re """ 给定IP地址,查询归属地 """ def get_ip_data_taobao(ip): """ 淘宝,有调用限制 文档地址:http://ip.taobao.com/ :param ip: :return: """ url = "http://ip.taobao.com/service/getIpInfo2.php" data = {'ip': ip} ip_info = '' headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.42 Safari/537.36 Edg/77.0.235.15'} try: # 检测所有异常跳过 r = requests.post(url, data=data, headers=headers, timeout=5) print(r.json()) if r.json()['code'] == 0: ip_data = r.json()['data'] ip_info = '{}{}·{}·{}{},ISP:{}'.format(ip_data['country'], ip_data['area'], ip_data['region'], ip_data['city'], '' if ip_data['county'] == 'XX' else '·' + ip_data['county'], ip_data['isp']) except BaseException as e: print(e) return ip_info def get_ip_data_ip138(ip): """ IP138,通过解析网页实现,经常获取不到 :param ip: :return: """ url = 'http://m.ip138.com/ip.asp' params = {'ip': ip} ip_info = '' try: r = requests.get(url, params=params) # print(r.text) if r.status_code == 200: ip_info = re.findall('<p class="result">本站主数据:(.*?)</p>', r.text)[0] except: pass return ip_info def get_ip_data_ipapi(ip): """ 这个好用 文档地址:http://ip-api.com/docs/api:json :param ip: :return: """ url = "http://ip-api.com/json/{}" # url = "http://ip-api.com/json/?lang=zh-CN&fields=status,message,countryCode,regionName,city,mobile,proxy,query" # 拼接参数 params = {'lang': 'zh-CN', 'fields': 'status,message,continent,country,regionName,city,org,mobile,proxy'} ip_info = '' try: # 检测所有异常跳过 r = requests.get(url.format(ip), params=params, timeout=5) res = r.json() # print(res) if res['status'] == 'success': ip_info = '{}·{}·{}·{}·{},<移动端:{}>'.format(res['continent'], res['country'], res['regionName'], res['city'], res['org'], '是' if res['mobile'] else '否') except BaseException as e: print(e) return ip_info def query_ip_info(ip): """ 用于tasks中调用 :param ip: :return: """ return get_ip_data_ipapi(ip) if __name__ == '__main__': ip = '127.0.0.1' # print(get_ip_data_taobao(ip)) # print(get_ip_data_ip138(ip)) print(query_ip_info(ip)) ```

很赞哦! (2)

文章交流

  • emoji
0人参与,0条评论

当前用户

未登录,点击   登录

站点信息

  • 建站时间:网站已运行2073天
  • 系统信息:Linux
  • 后台程序:Python: 3.8.10
  • 网站框架:Django: 3.2.6
  • 文章统计:256 篇
  • 文章评论:60 条
  • 腾讯分析网站概况-腾讯分析
  • 百度统计网站概况-百度统计
  • 公众号:微信扫描二维码,关注我们
  • QQ群:QQ加群,下载网站的学习源码
返回
顶部
标题 换行 登录
网站