python实现查询IP地址所在地


Posted in Python onMarch 29, 2015

使方法一、用IP138数据库查询域名或IP地址对应的地理位置。

#-*- coding:gbk -*-
import urllib2
import re
 
try:
 while True:
  ipaddr = raw_input("Enter IP Or Domain Name:")
  if ipaddr == "" or ipaddr == 'exit':
   break
  else:
   url = "http://www.ip138.com/ips138.asp?ip=%s&action=2" % ipaddr
   u = urllib2.urlopen(url)
   s = u.read()
   #Get IP Address
   ip = re.findall(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',s)
   print "\n****** Below Result From IP138 Database *****"
   print "IP Address:",ip[0]
   #Get IP Address Location
   result = re.findall(r'(<li>.*?</li>)',s)
   for i in result:
    print i[4:-5]
   print "*"*45
   print "\n"
 
except:
 print "Not Data Find"

方法二、本来想调用阿里的ip接口查询ip归属地。结果发现阿里的接口非常不给力,主要是不准确,不过是免费的且有地区和ISP的信息。以下是实现代码

# -*- coding: utf-8 -*-
import requests
 
def checkip(ip):
 
  URL = 'http://ip.taobao.com/service/getIpInfo.php'
  try:
    r = requests.get(URL, params=ip, timeout=3)
  except requests.RequestException as e:
    print(e)
  else:
    json_data = r.json()
    if json_data[u'code'] == 0:
      print '所在国家: ' + json_data[u'data'][u'country'].encode('utf-8')
      print '所在地区: ' + json_data[u'data'][u'area'].encode('utf-8')
      print '所在省份: ' + json_data[u'data'][u'region'].encode('utf-8')
      print '所在城市: ' + json_data[u'data'][u'city'].encode('utf-8')
      print '所属运营商:' + json_data[u'data'][u'isp'].encode('utf-8')
    else:
      print '查询失败,请稍后再试!'
 
ip={'ip': '202.102.193.68'}
checkip(ip)

python实现查询IP地址所在地

但是多次查询发现ip归属地不准确,于是使用17mon的ip查询接口。但是17mon分付费和免费的库接口,我用的免费的测试,接口返回的字段有限,只有国家、省份、城市。代码如下

# -*- coding: utf-8 -*-
import requests
 
def lookup(ip):
 
  URL = 'http://freeipapi.17mon.cn/' + ip
  try:
    r = requests.get(URL, timeout=3)
  except requests.RequestException as e:
    print(e)
 
  json_data = r.json()
  print '所在国家:' + json_data[0].encode('utf-8')
  print '所在省份:' + json_data[1].encode('utf-8')
  print '所在城市:' + json_data[2].encode('utf-8')
  return(ip)
 
ip='202.104.15.102'
lookup(ip)

python实现查询IP地址所在地

测试也不错,公司要使用还是选择购买付费的库查询接口吧。
本文部分出自 “老徐的私房菜” 博客,转载请与作者联系!

以上所述就是本文的全部内容了希望大家能够喜欢。

Python 相关文章推荐
python实现图片批量剪切示例
Mar 25 Python
Python实现简单状态框架的方法
Mar 19 Python
python任务调度实例分析
May 19 Python
深入理解python中的闭包和装饰器
Jun 12 Python
Python中字符串格式化str.format的详细介绍
Feb 17 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
pycharm 复制代码出现空格的解决方式
Jan 15 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
python实现定时播放mp3
Mar 29 #Python
Python实现设置windows桌面壁纸代码分享
Mar 28 #Python
Python中的类与对象之描述符详解
Mar 27 #Python
深入理解Javascript中的this关键字
Mar 27 #Python
Python运用于数据分析的简单教程
Mar 27 #Python
Python中下划线的使用方法
Mar 27 #Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 #Python
You might like
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
python实现udp数据报传输的方法
2014/09/26 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
python画折线图的程序
2018/07/26 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
python 实现汉诺塔游戏
2020/11/28 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
劳力士官方珠宝商:J.R. Dunn Jewelers
2018/09/29 全球购物
SQL数据库笔试题
2016/03/08 面试题
毕业生就业推荐信范文
2013/12/01 职场文书
环保倡议书500字
2014/05/15 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
项目安全员岗位职责
2015/02/15 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书