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实现bitmap数据结构详解
Feb 17 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 Python
Django密码系统实现过程详解
Jul 19 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
django认证系统 Authentication使用详解
Jul 22 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
Sep 23 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代码实现表单数据验证类
2015/07/28 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
JavaScript中的this机制
2016/01/30 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
从零学python系列之从文件读取和保存数据
2014/05/23 Python
python基础知识小结之集合
2015/11/25 Python
Python实现简易端口扫描器代码实例
2017/03/15 Python
Python用for循环实现九九乘法表
2018/05/31 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Python内存管理实例分析
2019/07/10 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
python多维数组分位数的求取方式
2020/03/03 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
师范毕业生个人求职信
2013/12/09 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
电子专业求职信
2014/06/19 职场文书
2015年除四害工作总结
2015/07/23 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers