Releases: keyblues/fofatoto
Releases · keyblues/fofatoto
Release list
v1.2.1
修复
- 修复 Nuitka onefile 模式下配置文件被写入 PID 子目录(如
8968\config.json)、进程退出即丢失的问题。根因:_get_config_dir误用 Nuitka 内部环境变量NUITKA_ONEFILE_PARENT(其值为进程 PID,并非路径),Path(<PID>).resolve()被解析为当前工作目录下的 PID 子目录。现改用 bootstrap 注入的NUITKA_ONEFILE_DIRECTORY(原始可执行文件所在目录)定位配置目录。 - 修复 Web UI 导出任务和临时文件从不清理导致的内存与磁盘泄漏:新增 30 分钟 TTL 自动清理机制(
_cleanup_export_tasks),过期任务及其临时文件会被自动删除。 - 修复
FofaWebHandler.log_message实现错误:原本输出args[0]而非format % args,导致日志内容错误。 - 修复
build_url中 HTTPS 端口推断仅识别 443 的问题:现在同时覆盖 8443、4443 等常见 HTTPS 端口。 - 修复
dedup_results中空键元组跳过去重的问题:空键也纳入seen集合,避免多条全空记录未被去重。 - 修复
export_json字段过滤顺序导致 JSON schema 不一致的问题:指定字段时保留所有字段(空值输出为空字符串),未指定字段时才过滤空值。 - 修复
_handle_search未校验size下界的问题:负值或 0 会传入 FOFA API,现在强制max(1, min(size, 10000))。 - 修复
_find_available_port全部端口被占用时返回已占用端口的问题:现在抛出明确的OSError。 - 修复
before_time解析失败时回退为原始字符串可能导致循环的问题:所有解析失败统一设为None。
优化
- 提取
_merge_dedup_fields公共函数,消除handle_single_mode和run_batch_search中的重复代码。 FofaResult._extra默认值改用field(default_factory=dict),删除冗余的__post_init__。- 删除
search()重试循环中不可达的for-else死代码及last_error无用赋值。 - 非交互环境下进度条降频输出(每 10 批或达目标时才打印),避免日志膨胀。
webbrowser.open添加异常处理,无桌面环境时不崩溃。
其他
- 版本号更新:
v1.2.0->v1.2.1。 - 完成语法检查与实际查询、深度导出、Web UI 接口回归验证。
v1.2.0
新增
- 新增零依赖本地 Web UI,提供即时预览、深度导出、批量注入和本地查询历史。
- Web UI 默认监听
127.0.0.1:17380,端口被占用时自动后延;支持-w/--web显式启动和--port指定端口。 - 无参数运行或双击二进制文件时自动进入 Web UI,便于 Windows 用户直接使用。
- 即时预览支持字段选择、10 到 10000 的数量预设、列排序、URL 跳转、结果保留和当前预览 CSV/JSON/TXT 导出。
- 深度导出以后台任务执行,按
before时间游标分批拉取数据,并在页面内展示进度、目标、配额、耗时和下载入口。 - 批量注入支持占位符批量替换目标,并复用深度导出流程合并结果。
- 本地查询历史基于浏览器 localStorage,支持搜索框内联建议、过滤、点击插入、删除和键盘选择。
优化
- Web UI 顶栏展示版本信息、GitHub 仓库链接和账号状态,服务器状态使用“正常/异常”文字。
- Web UI 的即时预览、深度导出和批量注入按模式隔离展示,切换模式时保留已有查询结果和导出任务状态。
- Web UI 响应式布局适配不同屏幕高度,查询历史下拉与结果表格会按窗口剩余空间自适应。
- 默认字段统一为
host,ip,port,protocol,domain,title,server,country,city,CLI 与 Web UI 复用同一份配置。 - 深度抓取尾批按剩余目标动态请求,并为大目标保留 1000 条尾批下限,兼顾配额消耗与 FOFA 分批拉取稳定性。
- 深度抓取增加自适应请求间隔,遇到
[-501]、超时等临时失败时自动放慢分批请求频率和请求内重试节奏,成功后逐步回落。 - 优化 CLI 输出,修正 Banner 对齐、Windows/非交互环境颜色转义、账号状态颜色一致性,以及进度/重试消息的换行表现。
修复
- 修复深度抓取时
-l/--limit未作为有效目标显示与计算的问题,进度条改按有效目标推进。 - 修复深度抓取请求失败后无法保留已获取结果的问题;重试后仍失败时会生成部分导出文件。
文档
- 更新 README,补充 Web UI 使用方式、默认端口、深度导出流程和默认字段说明。
- 文档统一使用
before时间游标分批拉取描述,避免与传统分页概念混淆。
其他
- 版本号更新:
v1.1.3->v1.2.0。 - 完成语法检查验证。
v1.1.3
修复
- 修复
domain字段可能被推断结果错误覆盖的问题(仅在空值时补全)。 - 修复全量抓取进度条颜色阈值判断错误(50% 分界恢复正常)。
- 修复去重在空/无效字段场景下可能误删结果的问题。
优化
- 新增统一的
-l/--limit参数解析与校验:仅支持正整数或max。 - 新增
--fill取值范围校验:限制为(0, 1]。 - 优化单格式导出逻辑:自动修正输出文件后缀,避免“后缀与内容不一致”。
v1.1.2
v1.1.2 更新详情
修复
域名与 URL 处理
- 修复
domain字段对 IPv6 地址解析错误的问题(使用urlparse.hostname+ipaddress正确识别 IP 字面量) - 修复
build_url()对 host 内已包含端口号时重复追加端口的问题 - 修复
--dedup url去重时未使用完整 URL 导致 http/https 重复识别的问题 - 修复
export_txt输出 URL 时重复代码和协议前缀问题,统一使用build_url()处理
导出功能
- 修复
export_csv字段过滤逻辑,正确处理用户请求字段与动态字段的合并 - 修复
export_json始终保留所有字段的问题,现在只保留用户通过-f指定的字段 - 修复
export_csv和export_json中url字段在 API 返回为空时未能通过build_url()补全的问题 - 修复同时导出多种格式时(如
-csv -json)文件名后缀错误的问题,自动按格式替换正确的文件后缀
查询与配额
- 修复
search_all_efficient批量查询中配额消耗统计不准确的问题(按实际返回条数而非固定 10000 计算) - 修复
search_all_efficient返回值中total字段错误的问题(返回 FOFA 总数而非已获取条数) - 修复当
--fill设为 0 时仍执行批量抓取的问题,现跳过并直接返回总数 - 修复当结果缺少
lastupdatetime字段时可能导致无限循环的问题(现安全退出)
其他
- 修复
to_dict()中_extra字段泄露到导出结果的问题 - 修复
_ensure_fields_for_url()因字符串子串匹配导致url_extra等字段误触发补充必要字段的问题 - 更新 Banner 版本号为 v1.1.2
完整变更日志
git log v1.1.1..v1.1.2 --onelinev1.1.1
fofatoto v1.1.1
更新内容
请查看提交记录获取更新详情
变更日志
git log v1.1.1~1..v1.1.1 --onelinev1.1.0
新增功能
- 批量查询模式,支持占位符替换
- 新增
-b/--batch参数 - 新增
-p/--placeholder自定义占位符
v1.0.0
fofatoto v1.0.0
FOFA 查询工具,支持单次查询和多次查询模式。
下载
| 平台 | 架构 | 文件名 |
|---|---|---|
| Windows | amd64 | fofatoto.exe |
| Linux | amd64 | fofatoto |
| Linux | arm64 | fofatoto_arm64 |
| macOS | amd64 | fofatoto_mac |
| macOS | arm64 (M芯片) | fofatoto_mac_arm64 |
使用方法
./fofatoto "domain=baidu.com"
详细使用说明请查看 README