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与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
python 3.7.0 安装配置方法图文教程
Aug 27 Python
python+numpy+matplotalib实现梯度下降法
Aug 31 Python
windows下安装Python虚拟环境virtualenvwrapper-win
Jun 14 Python
python绘制已知点的坐标的直线实例
Jul 04 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
python语言time库和datetime库基本使用详解
Dec 25 Python
python中threading和queue库实现多线程编程
Feb 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
php 实现进制相互转换
2016/04/07 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
node运行js获得输出的三种方式示例详解
2020/07/02 Javascript
Python字符串格式化的方法(两种)
2017/09/19 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
python自动发送邮件脚本
2018/06/20 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
北京华建集团SQL面试题
2014/06/03 面试题
学期自我鉴定
2013/11/04 职场文书
档案管理员岗位职责
2013/12/01 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
父母对孩子说的话
2014/04/12 职场文书
初中学生期末评语
2014/04/24 职场文书
住宅质量保证书
2014/04/29 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
运动会演讲稿300字
2014/08/25 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
Python Socket编程详解
2021/04/25 Python
详解vue中v-for的key唯一性
2021/05/15 Vue.js