python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
淘宝IP地址库 http://ip.taobao.com/
目前提供的服务包括:
1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家、省、市和运营商。
2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容。
我们的优势:
1. 提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范。
2. 提供完善的统计分析报表,省准确度超过99.8%,市准确度超过96.8%,数据质量有保障。
=======================================
#!/usr/local/bin/python
#coding: utf-8
__author__ = 'zdz8207'
import json
import urllib
import sys def get_data(ip):
url = "http://ip.taobao.com/service/getIpInfo.php?ip="+ ip
jsondata = json.loads(urllib.urlopen(url).read())
#{u'code': 0, u'data': {u'ip': u'119.124.101.221', u'city':
#其中code的值的含义为,0:成功,1:失败。{u'code': 1, u'data': u'invaild ip.'}
#print(jsondata)
if jsondata['code'] == 1:
jsondata['data'] = {'region':'','city':'','isp':''}
return (jsondata['data']['region'], jsondata['data']['city'], jsondata['data']['isp']) if __name__ == "__main__":
#211.162.62.161 61.135.157.156 220.198.192.0 119.124.101.221
result = get_data("211.162.62.161")
print(result[0]+result[1]+result[2])
======================================
python中数字和字符串连接的方法:print str(x) + " is a string"
======================================
Python获取IP归属地(修改版) - 开源中国社区
http://www.oschina.net/code/snippet_995588_18859
淘宝IP库API地址:http://ip.taobao.com/service/getIpInfo.php?ip=xxx
用python的tkinter模块写了个查询IP地址的小程序 - 推酷
http://www.tuicool.com/articles/nQjMNb7
./queryip.py 61.135.157.156
country area region city county isp
中国 华北 北京市 北京市 NULL 联通
======================================
python通过淘宝IP地址库获取IP位置
淘宝IP地址库提供了两大服务:
1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家、省、市和运营商。
2. 用户可以根据自己所在的位置和使用的IP地址更新我们的服务内容。
优势:
1. 提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范。
2. 提供完善的统计分析报表,省准确度超过99.8%,市准确度超过96.8%,数据质量有保障。
这个服务也是限制每个用户的访问频率需小于10qps
整个流程分两步:一,构造网址并读取网页数据;二,json解析网页数据。
代码如下:
import urllib, urllib2
import json
import sys
import re ip = '61.135.157.156'#raw_input(r'IP : ')
ip = str.strip(ip)
ptn = re.compile(r'(([12][0-9][0-9]|[1-9][0-9]|[1-9])\.){3,3}([12][0-9][0-9]|[1-9][0-9]|[1-9])')
rel = ptn.match(ip) if rel:
pass
else:
print "IP not valid"
sys.exit()
try:
urlfp = urllib.urlopen('http://ip.taobao.com/service/getIpInfo.php?ip='+ ip)
except Exception, e:
print "Error ", e
sys.exit() ipdata = urlfp.read()
urlfp.close() allinfo = json.loads(ipdata) for oneinfo in allinfo:
if "code" == oneinfo:
if 0 == allinfo[oneinfo]:
print "ip : " + allinfo["data"]["ip"]
print "city : " + allinfo["data"]["country"],
print allinfo["data"]["region"],
print allinfo["data"]["city"],
print "(" + allinfo["data"]["isp"] + ")"
else:
print "parse error"
sys.exit()
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码的更多相关文章
- python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...
- python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法
python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- python3.4学习笔记(二) 类型判断,异常处理,终止程序
python3.4学习笔记(二) 类型判断,异常处理,终止程序,实例代码: #idle中按F5可以运行代码 #引入外部模块 import xxx #random模块,randint(开始数,结束数) ...
- 使用python调用淘宝的ip地址库查询接口结合zabbix判断dnspod域名解析是否正确
#encoding:utf-8 import socket import requests import json ''' 使用python结合zabbix判断dnspod域名解析是否正确 服务器分国 ...
- Java基础学习笔记二十三 Java核心语法之反射
类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化. 加载就是指将class文件读入内存,并为之创建一个Class对象.任 ...
随机推荐
- Linux shell一行流编程实践
Linux下很多命令用起来真相当方便,尤其是进行批处理操作时.(话说感觉这种程序也不复杂,windows咋一直不搞一个好用的shell呢) 这里列出一些实际shell操作的应用场景,具体命令的用法与解 ...
- ubuntu1304无法启动桌面系统的问题和解决
今天上班,从oracle官网下载个最新的virtual box,安装后重启电脑,进入桌面后竟然没有菜单栏和启动栏了(就是最上边的bar和左边的应用栏),而且所有启动的窗口都没有菜单栏,终端什么的也都没 ...
- Centos6.10安装tomcat
1. 下载tomcat 2. 解压到相应的路径下 tar -xzvf apache-tomcat-8.5.34.tar.gz 3. 启动tomcat # 进入"apache-tomca ...
- 【转】jQuery之前端国际化jQuery.i18n.properties
jQuery之前端国际化jQuery.i18n.properties 基于jQuery.i18n.properties 实现前端页面的资源国际化 jquery-i18n-properties
- HDU 3746 - Cyclic Nacklace & HDU 1358 - Period - [KMP求最小循环节]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- Python:列表生成式
List Comprehensions #列表生成式:Python内置的非常简单却强大的可以用来创建list的生成式. #生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可 ...
- 异步IO
异步IO 在IO编程一节中,我们已经知道,CPU的速度远远快于磁盘.网络等IO.在一个线程中,CPU执行代码的速度极快,然而,一旦遇到IO操作,如读写文件.发送网络数据时,就需要等待IO操作完成, ...
- js实现点击div以外区域,隐藏div区域
<body style="text-align:center;"> <input type="text" style="width: ...
- node.js 开发桌面程序, 10个令人惊讶的NodeJS开源项目
用 node-webkit 开源框架. 做企业站,杠杠地 包括电子书和支付宝系统都是node开发的,. 接收传感器发送的数据再运算...对水泵.风机.空调这些硬件进行远程控制. 细数10个令人惊讶的N ...
- 纯代码实现WordPress上传图片自动重命名的方法
在我们使用 WordPress 发布文章时,经常都需要添加图片.多媒体什么的.然而,大家都知道 WordPress 是舶来物,对于中文用户来说,我们都会把图片命名为中文的,由于 WordPress 机 ...