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中实现延时回调普通函数示例代码
Sep 08 Python
Django中的Signal代码详解
Feb 05 Python
使用python装饰器计算函数运行时间的实例
Apr 21 Python
Python multiprocessing多进程原理与应用示例
Feb 28 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
Python实现随机取一个矩阵数组的某几行
Nov 26 Python
Python数据持久化存储实现方法分析
Dec 21 Python
详解python中各种文件打开模式
Jan 19 Python
Tensorflow分批量读取数据教程
Feb 07 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
记一次Django响应超慢的解决过程
Sep 17 Python
Python中全局变量和局部变量的理解与区别
Feb 07 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的计数器程序
2006/10/09 PHP
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
php的dl函数用法实例
2014/11/06 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
PHP对象实例化单例方法
2017/01/19 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
Python元字符的用法实例解析
2018/01/17 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
浅析python继承与多重继承
2018/09/13 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
高一化学教学反思
2014/02/05 职场文书
教师遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS