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批量导出导入MySQL用户的方法
Nov 15 Python
好用的Python编辑器WingIDE的使用经验总结
Aug 31 Python
python如何查看系统网络流量的信息
Sep 12 Python
Python字典简介以及用法详解
Nov 15 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
tensorflow实现逻辑回归模型
Sep 08 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Django Channel实时推送与聊天的示例代码
Apr 30 Python
在keras下实现多个模型的融合方式
May 23 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框架Laravel学习心得体会
2015/10/28 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
用Python实现命令行闹钟脚本实例
2016/09/05 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
Python 数据结构之队列的实现
2017/01/22 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
市场部业务员岗位职责
2014/04/02 职场文书
婚假请假条怎么写
2014/04/10 职场文书
安全员岗位职责
2015/02/10 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
python执行js代码的方法
2021/05/13 Python
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技