调用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类下载源代码,再通过正則 ...
随机推荐
- iOS view和viewController的生命周期
一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,ViewController总是在需要的时候才加载视图,并 ...
- JQ与AJAX 省市区三级联动下拉框
用于初学者学习基本的联动下拉框,废话不多说,见代码 首先看控制器里的3个下拉框对应代码: public ActionResult GetProvinceList() { ProvinceReposit ...
- JDBC公共操作类
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- JavaScript function函数种类介绍
JavaScript function函数种类介绍 本篇主要介绍普通函数.匿名函数.闭包函数 1.普通函数介绍 1.1 示例 ? 1 2 3 function ShowName(name) { ...
- requestScope含义
requestScope表名一个http请求的整个生命周期,它只是一个定义而已,不是一个对象. ${requestScope.info}就等价于request.getAttribute("i ...
- 使用upstream和subrequest访问第三方服务
本文是对陶辉<深入理解Nginx>第5章内容的梳理以及实现,代码和注释基本出自此书. 一.upstream:以向nginx服务器的请求转化为向google服务器的搜索请求为例 (一)模块框 ...
- PhoneGap+Xcode6环境配置
安装PhoneGap,请先安装好NodeJS $ sudo npm install -g phonegap 创建项目 $ phonegap create my-app 编译项目 $ cd my-app ...
- “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)
“MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...
- hdu 4515 年月份模拟题
小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) ...
- CSS两端对齐
前面的话 两端对齐在导航条Tab的制作中非常常用.本文将详细介绍CSS两端对齐的3种实现方式 flex 弹性盒模型flex作为强大的弹性布局方式,可以hold住大部分的布局效果,当然也包括两端 ...