FOFA Search Use
First
- 目标是让用户只提供
key和query就能检索并导出数据。 - 脚本自动选择翻页策略:
- 优先
search/next - 不支持时回退
search/all?page
- 优先
- 默认导出
CSV,可选导出JSON。 - 本 skill 不依赖固定机器路径,整个文件夹可直接复制到任意项目使用。
入口脚本
- 主脚本:
scripts/fofa_search_cli.py - 运行方式:
- AI 无交互推荐:
python3 scripts/fofa_search_cli.py --no-interactive --key "$FOFA_KEY" --query 'title="test"' --output-file results.csv --json-output
- 兼容交互:
python3 scripts/fofa_search_cli.py
- AI 无交互推荐:
环境与安装(可移植)
- 推荐虚拟环境:
python3 -m venv .venvsource .venv/bin/activate(Windows PowerShell:.venv\Scripts\Activate.ps1)pip install -r scripts/requirements.txt
- 最小依赖文件:
scripts/requirements.txt
参数说明
--key:FOFA API key--query:FOFA 查询语句--fields:返回字段,默认host,ip,port,protocol,title--max-records:最大导出条数,默认1000--page-size:每页请求数量,默认10000(最大10000)--output-file:CSV 文件名,默认fofa_results.csv--json-output:额外导出 JSON--base-url:FOFA 地址,默认https://fofa.info--no-interactive:禁止交互输入,缺参直接报错
推荐执行策略
- 先用小样本测试语句(如
--max-records 10)。 - 字段尽量精简,减少无效数据和消耗。
- 大批量导出时优先使用无交互参数模式,便于自动化和复现。
CSV 导出帮助
- 自定义导出字段:使用
--fields,字段顺序即 CSV 列顺序。 - 常用字段示例:
host,ip,port,protocol,title,country,city,server - 无交互导出示例:
python3 scripts/fofa_search_cli.py --no-interactive --key "$FOFA_KEY" --query 'title="test"' --fields "ip,port,host,title,country,city" --max-records 500 --page-size 100 --output-file fofa_custom.csv
- 交互导出要点:
- 运行脚本后在
fields提示中输入逗号分隔字段。 - 如果某列为空,CSV 中对应单元格会保留空值,这是正常现象。
- 运行脚本后在
- Excel 打开乱码处理:
- 脚本默认用
utf-8-sig写出 CSV,通常可直接被 Excel 正确识别。 - 若仍异常,导入时手动选择
UTF-8编码。
- 脚本默认用
安全注意事项
- 不要把真实
key写入仓库文件或提交历史。 - 推荐通过环境变量注入:
FOFA_KEY。 - 必须持久化时使用本地安全存储,不要明文保存在代码库。