最近需要根据IP查询IP所在城市位置,网上查阅后发现已经有许多人分享的免费API接口,大多数都是新浪、淘宝、搜狐等一些网站,测试后发现有些不然是文章过早API早就不能用了,不然就是API接口不稳定,而且每天调用量和调用频率限制都很高。
经过搜索发现了一个非常强大的ip查询网站,也提供免费API接口,虽然也有限制,但基本够用了。这个网站的名字就叫https://ip-api.com/
,其支持单IP查询,也支持以列表的形式批量查询,单IP查询限制为每分钟不超45次请求,批量查询限制为每分钟不超15次,每次IP不超100个,说白了最大限度为每分钟可以查1500个IP
单IP查询
# 直接发送get请求即可
url = 'http://ip-api.com/json/120.239.217.184?fields=status,message,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query&lang=zh-CN'
# 其中fields字段为定义接受返回参数,可不传;lang为设置语言,zh-CN为中文,可以穿
res = requests.get(url) # 发送请求
print res.json() # 获取结果
批量查询
# 多ip查询
url = 'http://ip-api.com/batch?'
# 定义接收参数及语言,可不传
param = {
'fields': 'status,message,country,countryCode,region,regionName,city,query',
'lang': 'zh-CN'
}
ip_list = ['118.0.3.50', '160.20.53.211', '104.67.14.136']
res = requests.post(url=url, params=param, json=ip_list)
print res.text
该网站免费API调用不需要注册账号,不需要申请token信息,用起来非常方便,而且免费额度很高。