1.138网站

http://user.ip138.com/ip/
首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值

 import httplib2
from urllib.parse import urlencode #python3
#from urllib import urlencode #python2
params = urlencode({'ip':'8.8.8.8','datatype':'jsonp','callback':'find'})
url = 'http://api.ip138.com/query/?'+params
headers = {"token":"8594766483a2d65d76804906dd1a1c6a"}#token为示例
http = httplib2.Http()
response, content = http.request(url,'GET',headers=headers)
print(content.decode("utf-8"))

响应格式

{
"ret":"ok", // ret 值为 ok 时 返回 data 数据 为err时返回msg数据
"ip":"114.114.114.114", // ip
"data":[
"中国", // 国家
"江苏", // 省会或直辖市
"南京", // 地区或城市
"电信", // 运营商
"", // 邮政编码
"" // 地区区号
]
}

2、ip-api,部分数据不准确,但不限请求次数,且可批量json请求,返回数据可选:json、xml、csv
  帮助文档

  

请求接口                                     请求方式           响应

http://ip-api.com/json/8.8.8.8?lang=zh-CN    HTTP GET           如下


 {
"status":"success",
"country":"美国",
"countryCode":"US",
"region":"VA",
"regionName":"弗吉尼亚州",
"city":"Ashburn",
"zip":"",
"lat":39.0438,
"lon":-77.4874,
"timezone":"America/New_York",
"isp":"Level 3",
"org":"Google LLC",
"as":"AS15169 Google LLC",
"query":"8.8.8.8"
}

哈哈,上python,获取信息

 """
简化版
"""
import requests
lid=input("请输入你要查询的IP:") headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url="http://ip-api.com/json/{}?fields=status,message,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query&lang=zh-CN".format(lid) #加headers反爬
rb=requests.get(url,headers=headers)
print(rb.text)

能获取ip信息的,但有点乱,不喜欢,个人有点强迫症,优化一下吧

 #!/usr/bin/env python3
# coding:utf-8
# 2019/11/14 14:45
#lanxing
import requests
import time strat=time.time()
def chax():
lid=input("请输入你要查询的IP:")
print("**************************************开始获取IP信息**********************************************")
head = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url="http://ip-api.com/json/{}?fields=status,message,country,countryCode,region,regionName,city,zip,lat,lon,timezone,isp,org,as,query&lang=zh-CN".format(lid)
rb=requests.get(url,headers=head)
# gf=BeautifulSoup(rb)
# print(rb.text)
# print("status:"+rb.content["status"])
response = rb.text
print(type(response))
# print(response)
# 把str转换到dic
dict_response = eval(response)
# for i in dict_response.items():
# print(i) for key,value in dict_response.items(): print("IP信息:" + str(key) + " : " + str(value)) chax()
end=time.time()
print("**************************************大佬,查询IP信息完成!**************************************")
print('查询耗时:',end-strat)

这个,理论上没有查询次数限制,有空再搞搞

参考文档:https://www.jianshu.com/p/bd0616fc30b8

https://ip-api.com/docs/api:json#test

最新文章

  1. CF 405C Unusual Product(想法题)
  2. BackgroundWorker Threads and Supporting Cancel
  3. 【转】C++及java在内存分配上的区别
  4. hdu 1281棋盘游戏(二分匹配)
  5. select m objects from n objects randomly
  6. 什么是系统平均负载(Load average)
  7. 十大面试问题解惑,秒杀一切HR、技术面试
  8. 2014辽宁ACM省赛 Prime Factors
  9. Markdown 代码测试
  10. HDU-2298 Toxophily (三分法入门系列)
  11. 好用的sql
  12. linux下硬盘uuid查看及修改设置
  13. 安卓高级5 zXing
  14. jQuery的事件处理
  15. vs2017激活码
  16. 安装visual studio过程
  17. Aerospike系列:6:AerospikeTools & Utilities
  18. Spanner:谷歌新一代全球部署的列式数据库
  19. 洛咕 P4131 [WC2005]友好的生物
  20. [UOJ391] 鸽举选仕

热门文章

  1. 【转】Java程序CPU飙升问题排查方法
  2. css3的选择器
  3. 鼠标悬浮到div上,div进行360°旋转
  4. VBA当中的时间日期函数
  5. Navicat Premium_11.2.7 安装及破解,连接Oracle数据库
  6. 数据库的元数据抽取SQL
  7. HTML 参考手册web
  8. 模拟求root——cf1067B
  9. 关于IDEA中maven项目中在pom.xml导入依赖报错的解决方法
  10. web移动端rem的适配