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中cPickle用法例子分享
Jan 03 Python
python3访问sina首页中文的处理方法
Feb 24 Python
Python中下划线的使用方法
Mar 27 Python
Python实现配置文件备份的方法
Jul 30 Python
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 Python
python和flask中返回JSON数据的方法
Mar 26 Python
python3+PyQt5泛型委托详解
Apr 24 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
Jun 01 Python
python制作图形界面的2048游戏, 基于tkinter
Apr 06 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
javascript自然分类法算法实现代码
2013/10/11 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
python 随机森林算法及其优化详解
2019/07/11 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
Python JSON编解码方式原理详解
2020/01/20 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
爱游人:Travelliker
2017/09/05 全球购物
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
门卫人员岗位职责
2013/12/24 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
MySQL 全文检索的使用示例
2021/06/07 MySQL
JUnit5常用注解的使用
2021/07/02 Java/Android