Python 调用Zoomeye搜索接口
钟馗之眼是一个强大的搜索引擎,不同于百度谷歌,它主要收集网络中的主机,服务等信息,国内互联网安全厂商知道创宇开放了他们的海量数据库,对之前沉淀的数据进行了整合、整理,打造了一个名符其实的网络空间搜索引擎ZoomEye,运用Python接口可以灵活的实现数据采集。
钟馗之眼的常用搜索关键字如下所示。
app:组件名称
ver:组件版本
搜索 apache组件 版本2.4 --> app:apache ver:2.4
port:端口号 ---> 例如:搜索开放了SSH端口的主机 port:22
指定搜索的操作系统 OS:操作系统名称 ---> OS:Linux
指定搜索的服务 service:服务名称 ---> 例如,搜素SSH服务 Service:SSH
指定搜索的地理位置范 --> country:国家 city:城市名 country:China --> city:Beijing
搜索指定的CIDR网段 例如: CIDR:192.168.158.12/24
搜索指定的网站域名 ---> site:www.baidu.com
搜索指定的主机名 ---> hostname:zwl.cuit.edu.cn
搜索指定的设备名 --> device:router
搜索具有特定首页关键词的主机 ---> keyword:technology
提供的搜索脚本如下。
import os,json,requests
import argparse
def login():
url_login="https://api.zoomeye.org/user/login"
data={
"username": "1098395580@qq.com",
"password": "xiaohua@1998"
}
data=json.dumps(data)
r=requests.post(url=url_login,data=data)
return json.loads(r.content)['access_token']
def GetResidual(token):
url="https://api.zoomeye.org/resources-info"
headers={'Authorization':'JWT ' + token}
r=requests.get(url=url,headers=headers)
datas=json.loads(r.content)
print("剩余搜索次数: {}".format(datas['resources']['search']))
def Search(token,search,files,page):
url="https://api.zoomeye.org/web/search?query={}&page={}".format(search,page)
headers={'Authorization':'JWT ' + token}
r=requests.get(url=url,headers=headers)
data = json.loads(r.content)['matches']
with open(files,'w',encoding='utf-8') as f:
json.dump(data,f,ensure_ascii=False)
print("[+] 保存文件: {} 长度: {} 页码: {} 查询语法: {}".format(files,len(data),page,search))
def Get_System(files):
try:
with open(files,'r',encoding='utf8') as fp:
json_data = json.load(fp)
json_len = len(json_data)
for item in range(0,json_len):
print("IP地址: %15s |" %(json_data[item]['ip'][0]),end="")
print("地区: %1s %3s "%(json_data[item]['geoinfo']['continent']['names']['zh-CN'],
json_data[item]['geoinfo']['subdivisions']['names']['zh-CN']))
except Exception:
pass
def Banner():
print(" _ ____ _ _ ")
print(" | | _ _/ ___|| |__ __ _ _ __| | __")
print(" | | | | | \___ \| '_ \ / _` | '__| |/ /")
print(" | |__| |_| |___) | | | | (_| | | | < ")
print(" |_____\__, |____/|_| |_|\__,_|_| |_|\_\\")
print(" |___/ \n")
print("E-Mail: me@lyshark.com")
if __name__== "__main__":
Banner()
parser = argparse.ArgumentParser()
parser.add_argument("-s","--search",dest="search",help="根据传入语法搜索指定内容")
parser.add_argument("-f","--file",dest="file",help="保存文件的名字 *.json")
parser.add_argument("-p","--page",dest="page",help="需要检索第几页的数据")
parser.add_argument("-q","--query" ,dest="query",help="单独使用,可用于查询剩余次数")
parser.add_argument("-g","--get" ,dest="get",help="提取本地json文件并解析出关键数据")
args = parser.parse_args()
if args.search and args.file and args.page:
token = login()
Search(token,args.search,args.file,args.page)
elif args.query and args.search == None:
token = login()
GetResidual(token)
elif args.get:
Get_System(args.get)
else:
parser.print_help()
查询使用次数: 默认情况下,钟馗之眼每月给与10000条左右的查询次数,可以使用 -q 参数实现次数的查询。

搜索功能的使用:通过-s选项指定你需要搜索的关键字,可以结合钟馗之眼搜索语法使用-p就是搜索的页码数-f保存为json文件。

在JSON中解析IP地址: 在本地JSON文件中解析IP地址,提取出关键数据。

Python 调用Zoomeye搜索接口的更多相关文章
- 关于python调用zabbix api接口
因公司业务需要,引进了自动化运维,所用到的监控平台为zbbix3.2,最近正在学习python,计划使用python调用zabbix api接口去做些事情,如生成报表,我想最基本的是要取得zabbix ...
- python调用支付宝支付接口
python调用支付宝支付接口详细示例—附带Django demo代码 项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公 ...
- python调用C语言接口
python调用C语言接口 注:本文所有示例介绍基于linux平台 在底层开发中,一般是使用C或者C++,但是有时候为了开发效率或者在写测试脚本的时候,会经常使用到python,所以这就涉及到一个问题 ...
- 『Python』Python 调用 ZoomEye API 批量获取目标网站IP
#### 20160712 更新 原API的访问方式是以 HTTP 的方式访问的,根据官网最新文档,现在已经修改成 HTTPS 方式,测试可以正常使用API了. 0x 00 前言 ZoomEye 的 ...
- python 调用zabbix api接口实现主机的增删改查
python程序调用zabbix系统的api接口实现对zabbix_server端主机的增删改查,使用相关功能时候,需要打开脚本中的相关函数. 函数说明: zabbixtools() 调用zabbi ...
- python - jpype模块,python调用java的接口
转载自: http://www.cnblogs.com/junrong624/p/5278457.html https://www.cnblogs.com/fanghao/p/7745356.html ...
- python调用百度语音识别接口实时识别
1.本文直接上干货 奉献代码:https://github.com/wuzaipei/audio_discern/tree/master/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5% ...
- python调用支付宝支付接口详细示例—附带Django demo代码
项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公钥 2.应用公钥 3.应用私钥 4.APPID 5.Django 1.11. ...
- 使用Groovy+Spock构建可配置的订单搜索接口测试用例集
概述 测试是软件成功上线的安全网.基本的测试包含单元测试.接口测试.在 "使用Groovy+Spock轻松写出更简洁的单测" 一文中已经讨论了使用GroovySpock编写简洁的单 ...
- python 调用 R,使用rpy2
python 与 R 是当今数据分析的两大主流语言.作为一个统计系的学生,我最早接触的是R,后来才接触的python.python是通用编程语言,科学计算.数据分析是其重要的组成部分,但并非全部:而R ...
随机推荐
- 自己实现的一个简单的C# IOC 容器
IService接口,以实现服务的启动.停止功能: using System; using System.Collections.Generic; using System.Linq; using S ...
- [kuangbin带你飞]专题十二 基础DP1 题解+总结
kuangbin带你飞:点击进入新世界 文章目录 目录 文章目录 1.Max Sum Plus Plus 2.Ignatius and the Princess IV 3.Monkey and Ban ...
- 第十二届蓝桥杯C++B组 A~H题题解
本次题解格式参考 墨羽魂韶 本文所用的试题: 第十二届蓝桥杯大赛软件赛省赛_CB.pdf 最后编辑时间 2021年4月29日 21:27:46 2022 年 4月 8号 15点13分 填空题答案速览 ...
- vue学习笔记 十一、计算属性介绍
系列导航 vue学习笔记 一.环境搭建 vue学习笔记 二.环境搭建+项目创建 vue学习笔记 三.文件和目录结构 vue学习笔记 四.定义组件(组件基本结构) vue学习笔记 五.创建子组件实例 v ...
- json 解析:marshal 和 unmarshal
Go 使用 encoding/json 包的 marshal 和 unmarshal 实现 json 数据的编解码.分别记录如下: 1. marshal 定义结构体: type OCP struct ...
- RLHF · PbRL | QPA:选择 near on-policy query,加速 policy learning 收敛速度
论文题目:Query-Policy Misalignment in Preference-Based Reinforcement Learning,ICLR 2023 Spotlight(8 6 6) ...
- QT启动问题--找不到python36.dll-cnblog
1.报错:找不到python36.dll 2.解决 通过该查询CSDN下载相应的python36.dll放到C:\Windows\System32目录下即可 https://blog.csdn.net ...
- [转帖]浏览器HTTP请求并发数和TCP连接的关系
https://cloud.tencent.com/developer/article/1518678 面试题目(头条): 网页中的图片资源为什么分放在不同的域名下? 浏览器与服务器建立一个TCP连接 ...
- [转帖]tcplife的使用
https://www.rutron.net/posts/2203/bcc-tcplife-usage/ 这篇文档主要演示了 tcplife(Linux eBPF/bcc) 工具的使用. 示例 tcp ...
- [转帖]数据库的快照隔离级别(Snapshot Isolation)
https://www.cnblogs.com/gered/p/10251744.html 总结:已提交读快照只影响语句级别的锁定行为,而快照隔离影响整个事务. 转自:https://www.cnb ...