看到网上有那么多的开放接口,于是就想尝试一下接口程序,于是就找了网上公开的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,如需转载请自行联系原作者