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使用正则匹配实现抓图代码分享
Apr 02 Python
python判断图片宽度和高度后删除图片的方法
May 22 Python
Python使用getpass库读取密码的示例
Oct 10 Python
基于Django用户认证系统详解
Feb 21 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
python正则表达式匹配IP代码实例
Dec 28 Python
python线程join方法原理解析
Feb 11 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
python生成xml时规定dtd实例方法
Sep 21 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
python3 kubernetes api的使用示例
Jan 12 Python
Python 中 Shutil 模块详情
Nov 11 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 array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
Yii rules常用规则示例
2016/03/15 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
jquery图片切换插件
2015/03/16 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
python实现excel读写数据
2021/03/02 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
Sanic框架路由用法实例分析
2018/07/16 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
文职个人求职信范文
2013/09/23 职场文书
安全检查验收制度
2014/01/12 职场文书
校园广播稿范文
2015/08/19 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers