查询 Shodan 物联网搜索引擎获取设备信息、安全数据和网络资产;当用户需要进行 IP 地址分析、设备搜索、DNS 查询、网络安全评估或获取物联网设备信息时使用
Shodan API Skill是一项面向实际任务的技能,主要用于本 Skill 用于:通过 Shodan API 查询互联网连接设备信息、进行网络安全分析;能力包含:主机信息查询、设备搜索、DNS 解析、反向 DNS 查询、端口扫描结果获取;
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
requests==2.28.0
当用户提供 IP 地址时,查询该 IP 的详细信息:
调用脚本:
python scripts/shodan_api.py host
示例:
python scripts/shodan_api.py host 8.8.8.8
返回信息包含:
当用户需要按条件搜索设备时:
调用脚本:
python scripts/shodan_api.py search "" [--facets ] [--page ]
常用搜索语法(详见 references/api-reference.md):
port:80 - 搜索开放 80 端口的设备country:US - 搜索美国的设备product:nginx - 搜索运行 nginx 的设备os:Windows - 搜索 Windows 系统org:"Google" - 搜索属于 Google 的设备示例:
# 搜索开放 80 端口的 Web 服务器 python scripts/shodan_api.py search "port:80" # 搜索运行 Apache 的设备,显示国家和组织信息 python scripts/shodan_api.py search "product:Apache" --facets "country,org" # 分页查询 python scripts/shodan_api.py search "port:22" --page 2
当用户只想知道匹配设备数量时:
调用脚本:
python scripts/shodan_api.py count "" [--facets ]
示例:
# 统计开放 80 端口的设备数量 python scripts/shodan_api.py count "port:80" # 按国家统计 python scripts/shodan_api.py count "port:80" --facets "country"
当用户需要查询域名相关的 DNS 信息:
正向 DNS 查询:
python scripts/shodan_api.py dns-domain
反向 DNS 查询:
python scripts/shodan_api.py dns-reverse
示例:
# 查询 google.com 的 DNS 信息 python scripts/shodan_api.py dns-domain google.com # 反向查询 8.8.8.8 的域名 python scripts/shodan_api.py dns-reverse 8.8.8.8
获取端口列表:
python scripts/shodan_api.py ports
获取搜索查询列表:
python scripts/shodan_api.py queries [--page] [--sort ] [--order ]
获取当前 IP:
python scripts/shodan_api.py myip
获取账户信息:
python scripts/shodan_api.py profile
获取 API 数据后,智能体将:
count 接口可以节省查询配额SHODAN_API_KEY 自动读取,无需手动传递用户请求:"帮我分析 8.8.8.8 的安全信息" 执行步骤:
用户请求:"查找所有暴露在互联网上的摄像头设备" 执行步骤:
webcam has_screenshot:true用户请求:"帮我发现某个组织的互联网资产" 执行步骤:
org:"组织名" 搜索