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 相关文章推荐
django+js+ajax实现刷新页面的方法
May 22 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
详解Python打包分发工具setuptools
Aug 05 Python
python 字段拆分详解
Dec 17 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
用python对oracle进行简单性能测试
Dec 05 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
如何用python写个模板引擎
Jan 14 Python
Python中使用ipython的详细教程
Jun 22 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
python2 与python3的print区别小结
2018/01/16 Python
python实现求最长回文子串长度
2018/01/22 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
从0开始的Python学习016异常
2019/04/08 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
运动会开幕式解说词
2014/02/05 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书