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 时间处理datetime实例
Sep 06 Python
Python中的字典遍历备忘
Jan 17 Python
python使用多线程不断刷新网页的方法
Mar 31 Python
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
Django框架教程之正则表达式URL误区详解
Jan 28 Python
根据DataFrame某一列的值来选择具体的某一行方法
Jul 03 Python
Django中的文件的上传的几种方式
Jul 23 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
Jul 31 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
python实现商品进销存管理系统
May 30 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 expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
详解使用 pyenv 管理多个版本 python 环境
2017/10/19 Python
python实现公司年会抽奖程序
2019/01/22 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
python dict如何定义
2020/09/02 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
车辆年审委托书范本
2014/09/18 职场文书
教师年度考核个人总结
2015/02/12 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
干部考核工作总结2015
2015/07/24 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
python中urllib包的网络请求教程
2022/04/19 Python