调用ZoomEye API获取信息
最近在提高自己编程能力,拿一些实用的小工具练下。该脚本为python语言,主要涉及模块urllib,json,os模块。
功能:调用ZoomEye API获取信息
import urllib.request
import json
import os def login():
username = input("username:")
password = input("password:")
url = "https://api.zoomeye.org/user/login"
data = json.dumps({'username':username,'password':password})
data_bytes = bytes(data,'utf8')
try:
req = urllib.request.Request(url,data_bytes)
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
target = json.loads(html) access_token = target['access_token']
with open('access_token.txt','w') as f:
f.write(access_token)
f.close
print('login seccess !!!')
#print('your access_token is:%s'%(access_token))
except Exception as err:
print('[info]:username or password is wrong !') def apiget():
while True:
host_or_web = input("search for host or web:(‘q!’Sign out):")
if host_or_web == 'q!':
break
query = input("input your keyword(-r for your resources-info):") #查看自己的套餐剩余量
if query == '-r':
req = urllib.request.Request('https://api.zoomeye.org/resources-info')
ida = open('access_token.txt').read() req.add_header('Authorization','JWT %s'%(ida))
re = urllib.request.urlopen(req)
ae = (re.read().decode('utf-8'))
ae = target = json.loads(ae)
dict_web = ae['resources']['web-search']
dict_host = ae['resources']['host-search']
print('your web search:%s'%(dict_web))
print('your host search:%s'%(dict_host))
else:
try:
req = urllib.request.Request('https://api.zoomeye.org/%s/search?query=%s'%(host_or_web,query))
idb = open('access_token.txt').read()
req.add_header('Authorization','JWT %s'%(idb))
r = urllib.request.urlopen(req)
a = (r.read().decode('utf-8'))
a = target = json.loads(a)
print('tatal:%s'%(a['total']))
for i in range(len(a['matches'])):
print (a['matches'][i]['ip']) except Exception as err:
print('[erro]:Please enter the correct syntax !') def start():
if not os.path.isfile('access_token.txt'): #首次使用会检查脚本目录下access_token.txt文件,没有的话登录会创建
print('[info]:you need login')
login() apiget() if __name__ == '__main__':
start()


调用ZoomEye API获取信息的更多相关文章
- 『Python』Python 调用 ZoomEye API 批量获取目标网站IP
#### 20160712 更新 原API的访问方式是以 HTTP 的方式访问的,根据官网最新文档,现在已经修改成 HTTPS 方式,测试可以正常使用API了. 0x 00 前言 ZoomEye 的 ...
- 记-beego项目调用Jenkins API获取job信息
type JenkinsController struct { beego.Controller } type Job struct { Name string `json:"name&qu ...
- js调用高德API获取所在当前城市
可以在js代码中直接调用API接口,获取所处当前城市信息,代码如下: <script type="text/javascript"> function getCurre ...
- Vue 通过调用百度API获取地理位置-经度纬度省份城市
一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...
- 调用windows api 获取系统分辨率
c++中: int cxScreen,cyScreen; cxScreen=GetSystemMetrics(SM_CXSCREEN); cyScreen=GetSystemMetrics(SM_CY ...
- C# 调用win api获取chrome浏览器中地址
//FindWindow 查找窗口 //FindWindowEx查找子窗口 //EnumWindows列举屏幕上的所有顶层窗口,如果回调函数成功则返回非零,失败则返回零 //GetWindowText ...
- android调用webservice接口获取信息
我的有一篇博客上讲了如何基于CXF搭建webservice,service层的接口会被部署到tomcat上,这一篇我就讲一下如何在安卓中调用这些接口传递参数. 1.在lib中放入ksoap2的jar包 ...
- Java调用yahoo!API获取天气数据
先把代码复制上来,以后再做补充 package com.weather.test; import java.io.InputStream; import java.net.URL; import ja ...
- C# 通过豆瓣网络编程API获取图书信息
这篇文章主要是关于如何通过豆瓣API获取信息的书籍,起初,我看到了原来的想法的内容是"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源代码,再通过正則 ...
随机推荐
- js call方法
js call call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[, ...
- GEF-whole-upload教程中遇到的问题及解决方案
最近在学习GEF开发,使用的是GEF-whole-upload这个教程.由于教程当时所使用的版本与本人使用的版本有一些差异,中间出现了不少问题,现在将解决方案分享给大家. 本人使用的Eclipse版本 ...
- 初探原生js根据json数据动态创建table
初探原生js根据json数据动态创建table 小生以实习生的职位进入了一家非纯软件的公司做asp.net开发,大半个月下来发现公司里居然没有前端工程师,这令我很诧异,跟着公司做项目,发现前端后台没有 ...
- CSS:用Less实现栅格系统
CSS:用Less实现栅格系统 背景 公司一直没有专职的前端和美工,Javascript相对来说我熟悉一点,CSS+HTML有四五年没有搞过了,最近要学一下,招聘或和美工配合的时候会有用处. 收集的资 ...
- Thrift RPC实战(二) Thrift 网络服务模型
限于篇幅关系,在观察源码的时候,只列举了部分源代码 TServer类层次体系 TSimpleServer/TThreadPoolServer是阻塞服务模型 TNonblockingServer/THs ...
- PHP:获取指定日期所在月的开始日期与结束日期
/** * 获取指定日期所在月的开始日期与结束日期 * @param string $date * @param boolean 为true返回开始日期,否则返回结束日期 * @return arra ...
- 10169 - Urn-ball Probabilities !
描述:有两个罐子,一个罐子里有一个红球,另一个罐子里有一个红球和一个白球,每次从两个罐子里各取一个球,然后在向每个罐子里各加一个白球,一次取到两个红球时就结束取球,求n次取球中至少一次为取球为红球的概 ...
- 改ext界面
以前的ext界面 被我给换成了 为的是响应整个系统平台的颜色色调---绿色,还得科技搭配蓝色,我可是想破了脑袋,才想到这种蓝绿搭配,领导们不知道怎么想的
- Linux设备驱动开发详解-Note(11)--- Linux 文件系统与设备文件系统(3)
Linux 文件系统与设备文件系统(3) 成于坚持,败于止步 sysfs 文件系统与 Linux 设备模型 1.sysfs 文件系统 Linux 2.6 内核引入了 sysfs 文件系统,sysfs ...
- ajax的分页查询(不刷新页面)
既然是分页查询,那么就要有张数据很多的表,可以让它进行分页显示,用普通的方法进行分页查询必然是要刷新页面的,这里要实现不刷新页面进行分页显示数据,就要用到ajax方式.进行编写代码 (1)先写个显示数 ...