python3调用接口查询IP信息

简介:

    看到网上有那么多的开放接口,于是就想尝试一下接口程序,于是就找了网上公开的IP接口,试了几个还是淘宝的比较稳定。也比较好用,下面做简单的介绍。

开发环境:windows pycharm

调用相关的模块

1
2
3
import  json   #解析返回jason格式的结果
import  requests  #调用访问web
import  urllib.parse  #拼接url

淘宝IP地址库:http://ip.taobao.com/index.php

API相关资料:

1
2
3
4
5
6
7
8
9
10
1.  请求接口(GET):
/ service / getIpInfo.php?ip = [ip地址字串]
2.  响应信息:
(json格式的)国家 、省(自治区或直辖市)、市(县)、运营商
3.  返回数据格式:
{ "code" : 0 , "data" :{ "ip" : "210.75.225.254" , "country" : "\u4e2d\u56fd" , "area" : "\u534e\u5317" ,
"region" : "\u5317\u4eac\u5e02" , "city" : "\u5317\u4eac\u5e02" , "county" :" "," isp ":" \u7535\u4fe1",
"country_id" : "86" , "area_id" : "100000" , "region_id" : "110000" , "city_id" : "110000" ,
"county_id" : "-1" , "isp_id" : "100017" }}
其中code的值的含义为, 0 :成功, 1 :失败。

    从上面的api的格式我们可以看到他包含很多的字段,在我们api开发对接工程中只需要按照自己的需求格式化输出就好。

过程分析:

1、首先是找相关的接口以及接口的相关参数

2、用urllib.parse拼接完整的URL并提交

3、接收返回值

4、将返回值转换成jash格式,并按自己的需求格式化输出

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/env/python
import  json
import  requests
import  urllib.parse
dataip =   input ( "please  input your ipaddress:" #输入IP
url = #地址 
data = {}   #定义一个空字典
data[ "ip" ] = dataip   #字典中的IP
data  =  urllib.parse.urlencode(data).encode( "utf-8" ) #拼接rul
 
response  =  urllib.request.urlopen(url, data)  #post提交数据
html  =  response.read().decode( "utf-8" )   #接收返回数据
#print(html)
tag = json.loads(html,encoding = 'utf8' #josh格式转换
#print(tag)
ip = tag[ "data" ][ "ip" ]   #要查询IP
city = tag[ "data" ][ "city" ] #城市
area = tag[ "data" ][ "area" ] #区域
isp = tag[ "data" ][ "isp" #ISP
county = tag[ "data" ][ "county" ] #市区
country = tag[ "data" ][ "country" ] #国家
print ( "您输入的IP:%s\n所在城市区域:%s%s%s\n运营商:%s%s" % (ip,country,city,
 
运行程序
please   input  your ipaddress: 114.98 . 241.95
返回结果:
您输入的IP: 114.98 . 241.95
所在城市区域:中国合肥市
运营商:中国电信



本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1911762,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 缓存 JavaScript
python实战篇:利用request库打造自己的翻译接口
python实战篇:利用request库打造自己的翻译接口
34 1
python实战篇:利用request库打造自己的翻译接口
|
2月前
|
数据采集 JSON API
如何实现高效率超简洁的实时数据采集?——Python实战电商数据采集API接口
你是否曾为获取重要数据而感到困扰?是否因为数据封锁而无法获取所需信息?是否因为数据格式混乱而头疼?现在,所有这些问题都可以迎刃而解。让我为大家介绍一款强大的数据采集API接口。
|
27天前
|
SQL API Python
Python DB API下规范下cursor对象常用接口
Python DB API下规范下cursor对象常用接口。
21 4
|
2天前
|
监控 PHP Python
1688快速获取整店铺列表 采集接口php Python
在电子商务的浪潮中,1688平台作为中国领先的批发交易平台,为广大商家提供了一个展示和销售商品的广阔舞台;然而,要在众多店铺中脱颖而出,快速获取商品列表并进行有效营销是关键。
|
3天前
|
监控 开发者 Python
Python中记录程序报错信息的实践指南
Python中记录程序报错信息的实践指南
12 1
|
3天前
|
开发者 Python
在Python中查询进程信息的实用指南
在Python中查询进程信息的实用指南
8 2
|
9天前
|
数据可视化 索引 Python
数据分享|Python用PyMC3贝叶斯模型平均BMA:采样、信息准则比较和预测可视化灵长类动物的乳汁成分数据
数据分享|Python用PyMC3贝叶斯模型平均BMA:采样、信息准则比较和预测可视化灵长类动物的乳汁成分数据
|
21天前
|
Python
python天气预报信息
python天气预报信息
|
27天前
|
Python
Python—提取页面上所有信息输出excel
Python—提取页面上所有信息输出excel
|
27天前
|
开发者 索引 Python
实践:如何使用python在网页的表格里抓取信息
实践:如何使用python在网页的表格里抓取信息