import pandas as pd
import requests
import time
API_PROMPT = API_PROMPT ="""
title=零零信安 从信息系统中搜索网页标题
group=北京零零信安科技有限公司 从信息系统中搜索所属公司
html_banner==清华大学&&html_banner==版权所有 从信息系统中搜索HTML原文
ip=1.1.1.1 从信息系统中搜索IP为“1.1.1.1”
ip=1.1.1.1/16 从信息系统中搜索IP为“1.1.1.1”的B段
url=https://0.zone 从信息系统中搜索URL,可搜索子域名
banner=端口返回信息 从信息系统中搜索端口返回信息为“端口返回信息”
例如模糊查询302跳转信息
banner==HTTP/1.1 302 Found
tags=登录页 从信息系统中搜索标签为“登录页”
port=80 从信息系统中搜索端口为“80”
component=nginx 从信息系统中搜索组件为“nginx”,搜索中间件
component=MySQL
component=OpenSSH
component==tomcat
component==Oracle WebLogic
component==redis
service=http 从信息系统中搜索服务为“http”,端口服务
service==oracle
service==mysql
service==redis
os=Linux 从信息系统中搜索操作系统为“Linux”
os==F5 BIG-IP
extra_info=负载均衡 从信息系统中搜索设备分类为“负载均衡”
app_name=零零信安 从信息系统中搜索APP名称为“零零信安”
status_code=200 从信息系统中搜索状态码为“200”
country=中国 从信息系统中搜索国家为“中国”
province=北京 从信息系统中搜索服务器位置省为“北京”
city=北京 从信息系统中搜索服务器位置市为“北京”
operator=电信 从信息系统中搜索运营商为“电信”
device_type=load balancer 从信息系统中搜索设备为“load balancer”
cms=WordPress 从信息系统中搜索CMS为“WordPress”
邮箱高级搜索参数:
email_domain=xxx.@qq.com 从邮箱中搜索邮箱地址为“xxx.@qq.com”
group=北京零零信安科技有限公司 从邮箱中搜索所属公司为“北京零零信安科技有限公司”
email_type=企业邮箱 从邮箱中搜索邮箱类型为“企业邮箱”
source=0.zone 从邮箱中搜索来源为“0.zone”
文档高级搜索参数:
msg.title=北京零零信安科技有限公司 从文档中搜索文档名称为“北京零零信安科技有限公司”
group=北京零零信安科技有限公司 从文档中搜索所属公司为“北京零零信安科技有限公司”
description=xxxx 从文档中搜索文档描述为“xxxx”
source=0.zone 从文档中搜索来源为“0.zone”
代码高级搜索参数:
msg.name=xxx/xxx/xxx/ 从代码中搜索代码名称(路径)为“xxx/xxx/xxx/”
description=0.zone 从代码中搜索代码原文为“0.zone”
language=github.com 从代码中搜索开发语言为“github.com”
risk_level=low 从代码中搜索风险等级为“low”
source=0.zone 从代码中搜索来源为“0.zone”
msg.tags=0.zone 从代码中搜索标签为“0.zone”
供应链高级搜索参数:
group=北京零零信安科技有限公司 从供应链中搜索所属公司为“北京零零信安科技有限公司”
supplier=北京零零信安科技有限公司 从供应链中搜索供应商为“北京零零信安科技有限公司”
msg.tags=软件 从供应链中搜索标签为“软件”
msg.province=北京 从供应链中搜索省份为“北京”
人员高级搜索参数:
msg.introduction=北京零零信安科技有限公司 从人员中搜索简介为“北京零零信安科技有限公司”
name=北京零零信安科技有限公司 从人员中搜索姓名为“北京零零信安科技有限公司”
group=北京零零信安科技有限公司 从人员中搜索所属公司为“北京零零信安科技有限公司”
position=0.zone 从人员中搜索职位为“0.zone”
source=0.zone 从人员中搜索来源为“0.zone”
title=北京零零信安科技有限公司 从移动端应用中搜索应用名称为“北京零零信安科技有限公司”
description=xxxxxx 从移动端应用中搜索应用描述为“xxxxxx”
group=北京零零信安科技有限公司 从移动端应用中搜索所属公司为“北京零零信安科技有限公司”
type=微信公众号 从移动端应用中搜索应用类型为“微信公众号”
source=0.zone 从移动端应用中搜索来源为“0.zone”
"""
def fetch_data(query, page_count):
url = "https://0.zone/api/data/"
data = {
"query": query,
"query_type": "site",
"page": 1,
"pagesize": page_count,
"zone_key_id": ""
}
response = requests.post(url=url, json=data)
# 检查响应状态码
if response.status_code != 200:
print(f"请求失败,状态码:{response.status_code}")
response.raise_for_status()
response_json = response.json()
# 检查响应中是否包含数据和错误信息
if 'code' in response_json and response_json['code'] != 200:
print("API返回错误: ", response_json.get('message', '未知错误'))
exit()
# 确保数据存在再继续
if 'data' not in response_json:
print("响应中未包含数据")
exit()
# 如果数据为空,则给出相应提示
if len(response_json['data']) == 0:
print("查询结果为空")
return response_json
def export_to_excel(responses):
data_rows = [item for item in responses['data']]
dataframe = pd.DataFrame(data_rows)
file_name_safe = str(time.time()) + ".xlsx"
dataframe.to_excel(file_name_safe, index=False)
print(f'完成,已保存至文件:{file_name_safe}')
if __name__ == '__main__':
print(API_PROMPT)
query = input("输入查询语句:")
try:
page_count = int(input("输入查询条数:"))
except ValueError:
print("请输入一个数字作为查询条数")
exit()
start_time = time.time()
json_data = fetch_data(query, page_count)
end_time = time.time()
export_to_excel(json_data)
print(f"完成查询并导出至Excel文件,用时{end_time - start_time}秒")
00信安API
最新推荐文章于 2024-09-15 22:31:42 发布