信息搜集:网络空间搜索引擎语法及API的应用(二)

简介: 信息搜集:网络空间搜索引擎语法及API的应用(二)

接上文 信息搜集:网络空间搜索引擎语法及API的应用(一)https://developer.aliyun.com/article/1618340

  1. 搜索引擎API的应用
    ZoomEye除了以上介绍的智能检索功能以外,还提供了强大的Result API功能,用户通过它能够更好地与平台连接,调用平台各类资源。现利用Python程序调用ZoomEye的API接口实现自动化信息搜集。ZoomEye—API被分为两种验证方式,API-KEY和登录验证(Login verification)。

运 行 环 境:

OS: macOS Monterey Version 12.3.1(英文版)

IDE:PyCharm 2020.1

Python: Version 3.9.9

1) 登录验证(Login verification)
平台主要使用的是Json Web Token的登录验证方式,用户进行登录,并获取access_token 就可以直接调用API功能,使用host方法查询开放6379端口的服务器IP地址,并输出检索到的IP地址和端口号,示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :4/18/22 7:03 PM
# 文件      :Zoomeye_host_token.py
# IDE      :PyCharm

import requests
import json

import zoomeye.sdk as zoomeye

# 定义一个函数获取access_token
def get_access_token(username, password):
    # 实例化一个zm对象
    zm = zoomeye.ZoomEye()
    # 账号赋值给对象的账号属性,账号密码赋值给账号密码属性
    zm.username = username
    zm.password = password
    return zm.login()

# 定义主函数
def main():
    # 输入zoomeye账号和密码
    username = input('请输入账号: ')
    password = input('请输入账号密码:')
    # headers里的Authorization值必须JWT前缀加空格
    headers = {
    "Authorization":"JWT " + get_access_token(username=username, password=password)}
    # 赋值给url
    url = 'https://api.zoomeye.org/host/search?query=port:6379&page=1&facets=app,os'
    # 请求信息赋值给info
    info = requests.get(url=url, headers=headers)
    # 转换为json数据
    r_decoded = json.loads(info.text)
    # 遍历匹配项列表,输出IP地址和端口号
    for line in r_decoded['matches']:
        print(line['ip'] + ': ' + str(line['portinfo']['port']))

#  启动主程序
if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('interrupted by user, killing all threads....')

运行结果如下:

image.png

备注:headers头部Authorization必须包含JWT 前缀

2)API-KEY 验证
对于每个账户,在它的个人资料页的底部会找到一串API-KEY字符串,将这个字符串添加到ZoomEye-API字段。本人的个人资料的字符串如下图:

image.png

备注:API-KEY与账号绑定而且可以被重置

示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :4/18/22 4:11 PM
# 文件      :ZoomEye_host.py
# IDE      :PyCharm

# 导入相关模块
import requests
import json

# 定义主函数
def main():
    # 定义头部headers
    headers = {
    "API-KEY":"E4b729d3-5730-D778B-87f2-408604aedbd"}
    # 赋值url
    url = 'https://api.zoomeye.org/host/search?query=port:6379&page=1&facets=app,os'
     # 请求信息赋值给info
    info = requests.get(url=url, headers=headers)
    # 转换为json数据
    r_decoded = json.loads(info.text)
    # 遍历匹配项列表,输出IP地址和端口号
    for line in r_decoded['matches']:
        print(line['ip'] + ': ' + str(line['portinfo']['port']))

# 运行主程序
if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('interrupted by user, killing all threads....')

运行结果如下图:

image.png

希望此文对您有所帮助和启发,欢迎点赞收藏和转发加关注!谢谢!

相关文章
|
6月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
6月前
|
供应链 搜索推荐 数据挖掘
探秘京东 API 接口的神奇应用场景
京东API如同数字钥匙,助力商家实现商品、库存、订单等多平台高效同步,提升效率超80%。支持物流实时追踪,增强用户满意度;赋能精准营销与数据分析,决策准确率提升20%以上,全面优化电商运营。
175 1
|
8月前
|
监控 安全 Shell
管道符在渗透测试与网络安全中的全面应用指南
管道符是渗透测试与网络安全中的关键工具,既可用于高效系统管理,也可能被攻击者利用实施命令注入、权限提升、数据外泄等攻击。本文全面解析管道符的基础原理、实战应用与防御策略,涵盖Windows与Linux系统差异、攻击技术示例及检测手段,帮助安全人员掌握其利用方式与防护措施,提升系统安全性。
364 6
|
7月前
|
人工智能 自然语言处理 机器人
使用 API 编程开发扣子应用
扣子(Coze)应用支持通过 API 编程,将 AI 聊天、内容生成、工作流自动化等功能集成至自有系统。主要 API 包括 Bot API(用于消息交互与会话管理)及插件与知识库 API(扩展功能与数据管理)。开发流程包括创建应用、获取密钥、调用 API 并处理响应,支持 Python 等语言。建议加强错误处理、密钥安全与会话管理,提升集成灵活性与应用扩展性。
2338 0
|
8月前
|
监控 供应链 搜索推荐
电商数据开发实践:深度剖析1688商品详情 API 的技术与应用
在电商数字化转型中,数据获取效率与准确性至关重要。本文介绍了一款高效商品详情API,具备全维度数据采集、价格库存管理、多媒体资源获取等功能,结合实际案例探讨其在电商开发中的应用价值与优势。
|
8月前
|
API 定位技术 调度
实现精准定位的—坐标系经纬度转换API技术说明和行业应用
在地图服务、物流调度等应用中,多源地理位置数据因采用不同坐标系(如WGS84、GCJ02、BD09)需统一转换,以避免位置偏移影响路径规划与分析精度。本文介绍坐标转换背景、技术方案及Python调用示例,强调其在智慧交通与物流系统中的重要性。
837 0
|
9月前
|
JSON 监控 API
在线网络PING接口检测服务器连通状态免费API教程
接口盒子提供免费PING检测API,可测试域名或IP的连通性与响应速度,支持指定地域节点,适用于服务器运维和网络监控。
1458 0
|
6月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
266 11
|
9月前
|
机器学习/深度学习 数据采集 算法
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
本文将BSSNN扩展至反向推理任务,即预测X∣y,这种设计使得模型不仅能够预测结果,还能够探索特定结果对应的输入特征组合。在二元分类任务中,这种反向推理能力有助于识别导致正负类结果的关键因素,从而显著提升模型的可解释性和决策支持能力。
649 42
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
|
7月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
656 11