{"id":34854614,"url":"https://github.com/gagmm/fofa_bot","last_synced_at":"2026-02-16T15:05:48.638Z","repository":{"id":325741928,"uuid":"1102232617","full_name":"gagmm/fofa_bot","owner":"gagmm","description":"一个功能强大的 Telegram 机器人，它深度集成了 FOFA 的 API，允许您通过 Telegram 直接进行网络空间资产的搜索、下载、分析和管理","archived":false,"fork":false,"pushed_at":"2026-02-12T08:55:53.000Z","size":882,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-12T17:53:22.575Z","etag":null,"topics":["api","fofa","fofa-api","fofa-search","python","telegram","telegrambot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gagmm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-23T04:07:01.000Z","updated_at":"2026-02-12T08:55:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gagmm/fofa_bot","commit_stats":null,"previous_names":["qszx11/fofa_bot","gagmm/fofa_bot"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/gagmm/fofa_bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagmm%2Ffofa_bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagmm%2Ffofa_bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagmm%2Ffofa_bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagmm%2Ffofa_bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gagmm","download_url":"https://codeload.github.com/gagmm/fofa_bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagmm%2Ffofa_bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29510547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","fofa","fofa-api","fofa-search","python","telegram","telegrambot"],"created_at":"2025-12-25T20:00:18.518Z","updated_at":"2026-02-16T15:05:48.619Z","avatar_url":"https://github.com/gagmm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FOFA 数据下载机器人 (FOFA Data Downloader Bot)\n[English](https://github.com/qszx11/fofa_bot/blob/main/README_English.md)\n[Iran](https://raw.githubusercontent.com/qszx11/fofa_bot/refs/heads/main/README_Iran.md)\n\n**您的私人FOFA资产搜索引擎与分析助手。**\n\n这是一个功能强大的 Telegram 机器人，它深度集成了 [FOFA](https://fofa.info) 的 API，允许您通过 Telegram 直接进行网络空间资产的搜索、下载、分析和管理。它不仅仅是一个数据拉取工具，更是一个集成了多种后处理和分析能力的一站式平台。\n\n## 免责声明\n\n* 项目内所涉及任何脚本、LOGO 、工作流仅为资源共享、学习参考之目的，不保证其合法性、正当性、准确性；请根据情况自行判断，切勿使用项目做任何商业用途或牟利；\n\n* 遵循避风港原则，若有图片和内容等侵权，请在 Issues 告知，核实后删除，其版权均归原作者及其网站所有；\n\n* 本人不对任何内容承担任何责任，包括但不限于任何内容错误导致的任何损失、损害;\n\n* 其它人通过任何方式登陆本网站或直接、间接使用项目相关资源，均应仔细阅读本声明，一旦使用、转载项目任何相关教程或资源，即被视为您已接受此免责声明。\n\n* 本项目内所有资源文件，禁止任何公众号、自媒体进行任何形式的转载、发布。\n\n* 本项目涉及的数据由使用的个人或组织自行填写，本项目不对数据内容负责，包括但不限于数据的真实性、准确性、合法性。使用本项目所造成的一切后果，与本项目的所有贡献者无关，由使用的个人或组织完全承担。\n\n* 本项目中涉及的第三方硬件、软件等，与本项目没有任何直接或间接的关系。本项目仅对部署和使用过程进行客观描述，不代表支持使用任何第三方硬件、软件。使用任何第三方硬件、软件，所造成的一切后果由使用的个人或组织承担，与本项目无关。\n\n* 本项目中所有内容只供学习和研究使用，不得将本项目中任何内容用于违法行为，包括但不限于建立 VPS 或违反国家/地区/组织等的法律法规或相关规定的其他用途。作者对于由此引起的任何隐私泄漏或其他后果概不负责.\n\n* 所有基于本项目源代码，进行的任何修改，为其他个人或组织的自发行为，与本项目没有任何直接或间接的关系，所造成的一切后果亦与本项目无关。\n\n* 本项目保留随时对免责声明进行补充或更改的权利，直接或间接使用本项目内容的个人或组织，视为接受本项目的特别声明。\n\n## ✨ 核心功能\n\n*   **🚀 高级资产搜索**:\n    *   **精准查询**: 使用 `/kkfofa` 命令执行任何 FOFA 语法查询。\n    *   **预设与筛选**: 支持管理员预设常用查询，并可在执行时快速叠加地域（大洲）筛选。\n    *   **多种下载模式**:\n        *   **全量下载**: 快速下载1万条以内的结果。\n        *   **深度追溯 (Traceback)**: 通过时间线回溯，突破1万条限制，获取理论上的全量数据。\n        *   **增量更新**: 对已缓存的查询结果进行更新，只下载新增的数据，节省F点。\n\n*   **📊 深度数据分析**:\n    *   **主机画像 (`/host`)**: 获取单个IP或域名的全方位信息，包括开放端口、服务、证书、Banner等。\n    *   **聚合统计 (`/stats`)**: 对任意查询进行全局聚合统计，快速洞察资产的宏观分布（如Top国家、服务、端口等）。\n    *   **批量特征分析 (`/batchfind`)**: 上传IP列表（`ip:port`格式），机器人会自动查询并智能分析这批资产的共同特征，并**自动生成建议的FOFA查询语句**，是进行威胁情报分析和资产归类的利器。\n\n*   **🛠️ 强大的后处理工具**:\n    *   **存活检测**: 下载完成后可一键对结果进行端口存活检测。\n    *   **子网扫描**: 对结果中的IP所在C段进行相同端口的扫描，以发现更多潜在资产。\n\n*   **⚙️ 便捷的管理功能**:\n    *   **交互式设置 (`/settings`)**: 通过菜单轻松管理API密钥、HTTP代理、查询预设等。\n    *   **多API Key支持**: 支持添加多个FOFA API Key，并可在查询时指定使用，机器人也会在某个Key失效或F点不足时自动切换。\n    *   **数据管理**: 支持配置的备份与恢复、查询历史回顾、以及导入已有的数据文件并与FOFA语法关联。\n    *   **在线更新 (`/update`)**: 可配置更新源URL，实现一键在线更新机器人脚本并自动重启。\n\n## 📖 准备工作\n\n在开始之前，您需要准备以下三样东西：\n\n1.  **一台服务器**: 一台可以7x24小时运行Python脚本的Linux服务器（或任何支持Python的PC/Mac）。最好不要在中国或其他Telegram被封锁的地区（比如伊朗）使用（由于GFW，需要配置网络代理）。\n2.  **FOFA API 密钥**:\n    *   您必须拥有一个 [FOFA](https://fofa.info) 个人会员或以上账户。（或者不开会员，多充点F点）\n    *   登录后，在“个人中心” -\u003e “API接口”中找到您的`Key`。\n3.  **Telegram Bot Token**:\n    *   在Telegram中搜索 `@BotFather` 并开始对话。\n    *   发送 `/newbot` 命令。\n    *   按照提示为您的机器人设置一个名字（Name）和用户名（Username，必须以`bot`结尾）。\n    *   `BotFather` 会给您一长串字符，这就是您的 **Bot Token**。请妥善保管，不要泄露。\n\n## 🚀 部署指南\n\n即使您是新手，只需按照以下步骤操作，也能轻松部署成功。\n\n### 步骤 1: 下载脚本\n\n将本项目提供的最新版Python脚本（ `fofa.py`）下载到您的服务器上。\n```bash\nwget https://raw.githubusercontent.com/qszx11/fofa_bot/refs/heads/main/fofa.py\n```\n也可以把requirements.txt也下载到服务器上。\n```bash\nwget https://raw.githubusercontent.com/qszx11/fofa_bot/refs/heads/main/requirements.txt\n```\n你也可以直接去发行版中下载已经编译好的二进制文件。\n\n### 步骤 2: 安装依赖\n\n机器人依赖于一些Python库。打开服务器的终端，执行以下命令来安装它们：\n\n```bash\npip3 install python-telegram-bot==13.15 requests \"urllib3\u003c2.0\"\n```\n或者（如果你已经下载了requirements.txt）\n```bash\npip3 install -r requirements.txt\n```\n\n*注意：我们指定了 `python-telegram-bot` 的版本为 `13.15` 以确保兼容性。*\n\n### 步骤 3: 配置机器人\n\n1.  在脚本所在的目录下，创建一个名为 `config.json` 的文件。\n2.  将以下内容复制并粘贴到 `config.json` 文件中：\n\n    ```json\n    {\n        \"bot_token\": \"在这里粘贴你的Telegram Bot Token\",\n        \"apis\": [\n            \"在这里粘贴你的第一个FOFA API Key\"\n        ],\n        \"admins\": [],\n        \"proxy\": \"\",\n        \"full_mode\": false,\n        \"public_mode\": false,\n        \"presets\": [],\n        \"update_url\": \"\"\n    }\n    ```\n\n3.  **修改配置文件**:\n    *   `\"bot_token\"`: 替换为你在 **准备工作** 中从 `@BotFather` 获取的 Token。\n    *   `\"apis\"`: 替换为你的 FOFA API Key。你可以添加多个Key，用逗号隔开，例如：`[\"key1\", \"key2\"]`。\n    *   `\"admins\"`: **这一项先留空**。当你第一次启动机器人并向它发送 `/start` 命令时，它会自动将你的Telegram用户ID添加为第一个管理员。\n    *   `\"proxy\"`: 如果你的服务器需要通过代理才能访问Telegram（如中国，伊朗等地），请在这里填写代理地址，例如 `\"http://127.0.0.1:7890\"`。如果不需要，请保持为空 `\"\"`。\n\n### 步骤 4: 运行机器人\n\n在终端中，使用以下命令启动机器人：\n\n```bash\npython3 fofa.py\n```\n\n如果一切正常，您会看到类似 \"🚀 终极版机器人已启动...\" 的日志信息。现在，您可以在Telegram中找到您的机器人并开始使用了！\n\n### 步骤 5: 保持后台运行 (推荐)\n\n为了让机器人在您关闭终端后也能持续运行，推荐使用 `nohup`：\n\n```bash\nnohup python3 -u fofa.py \u003e fofa_bot_run.log 2\u003e\u00261 \u0026\n```\n也可以使用`screen`：\n```bash\nscreen -S fofa\npython3 fofa.py\n```\n\n以上操作会让机器人在后台运行，并将所有日志输出到 `fofa_bot_run.log` 文件中（screen不可以）。\n\n## 📚 指令详解\n\n以下是所有可用指令的详细说明。\n\n---\n\n### 🔍 资产查询\n\n*   **/kkfofa `[key_index] \u003cquery\u003e`**\n    *   **功能**: 核心的FOFA查询指令。\n    *   **用法**:\n        *   不带参数 (`/kkfofa`): 如果设置了预设，会弹出预设查询菜单。\n        *   带参数 (`/kkfofa domain=\"example.com\"`): 直接执行查询。\n        *   指定Key (`/kkfofa 2 app=\"nginx\"`): 使用 `config.json` 中配置的第2个API Key进行查询。\n    *   **交互流程**:\n        1.  执行查询后，机器人会询问是否按大洲进行地域筛选。\n        2.  接着，它会检查是否有本地缓存。\n        3.  如果结果超过1万，会提示选择下载模式（全量/深度追溯）。\n\n---\n\n### 📊 数据分析\n\n*   **/host `\u003cip|domain\u003e`**\n    *   **功能**: 获取单个目标的详细信息。\n    *   **示例**: `/host 1.1.1.1` 或 `/host example.com`\n    *   **输出**: 如果信息过多，会发送一个摘要，并将包含完整Banner/Header的详细报告作为文件发送。\n\n*   **/stats `\u003cquery\u003e`**\n    *   **功能**: 对一个FOFA查询进行聚合统计。\n    *   **示例**: `/stats app=\"Apache-Tomcat\"`\n    *   **输出**: 返回Top 5的国家、组织、服务、端口等统计信息。\n\n*   **/batchfind**\n    *   **功能**: 批量分析资产共性。这是本机器人的核心亮点之一。\n    *   **用法**:\n        1.  发送 `/batchfind` 命令。\n        2.  上传一个`.txt`文件，文件内容为每行一个 `ip:port` (兼容各种复杂格式，如 `1.1.1.1:443 | ...`)。\n        3.  通过菜单选择你感兴趣的分析维度（如服务、证书、标题等）。\n        4.  机器人会批量查询这些资产，并生成一份包含Top特征和**建议FOFA查询语句**的报告。\n\n---\n\n### ⚙️ 管理与设置\n\n*   **/settings**\n    *   **功能**: 进入交互式设置菜单，可以管理：\n        *   **API管理**: 查看、添加、删除FOFA API Key，切换查询模式（近一年/完整历史）。\n        *   **预设管理**: 添加或删除常用的查询语句作为预设，方便快速调用。\n        *   **代理设置**: 设置或清除HTTP代理。\n        *   **备份与恢复**: 快速备份配置文件。\n        *   **脚本更新**: 设置更新源URL。\n\n*   **/history**\n    *   **功能**: 查看最近10条查询历史记录及其缓存状态。\n\n*   **/import**\n    *   **功能**: 将一个已有的结果文件（`.txt`）与一条FOFA查询语句关联，并存入缓存。\n    *   **用法**: 在Telegram中，**回复**一个你想导入的`.txt`文件，然后输入 `/import` 命令，机器人会提示你输入关联的查询语句。\n\n*   **/backup** \u0026 **/restore**\n    *   **功能**: 备份或恢复 `config.json` 配置文件。\n    *   **用法**: `/backup` 会直接发送文件给你。`/restore` 会提示你上传配置文件。\n\n---\n\n### 💻 系统管理\n\n*   **/update**\n    *   **功能**: 如果在设置中配置了`update_url`，此命令会从该URL下载最新脚本并自动重启机器人。\n\n*   **/getlog**\n    *   **功能**: 获取机器人的运行日志文件 `fofa_bot.log`。\n\n*   **/shutdown**\n    *   **功能**: 安全地关闭机器人进程。\n\n*   **/stop**\n    *   **功能**: 紧急停止当前正在进行的数据下载任务（如深度追溯）。\n\n*   **/cancel**\n    *   **功能**: 取消当前正在进行的会话操作（如设置、导入等）。\n\n## ❓ 常见问题 (FAQ)\n\n1.  **机器人没反应怎么办？**\n    *   检查 `config.json` 中的 `bot_token` 是否正确。\n    *   检查服务器网络是否正常，是否能访问Telegram API（如果不能，请设置代理，国内不设置代理肯定是不能使用的）。\n    *   查看 `fofa_bot_run.log` 日志文件，看是否有报错信息（有的话请提交lssue）。\n\n2.  **为什么我发送命令，机器人提示我没有权限？**\n    *   机器人启动后，第一个向它发送 `/start` 的用户会被自动设为管理员。请确保您的Telegram用户ID已被正确添加到 `config.json` 的 `admins` 列表中。\n\n3.  **FOFA查询失败是什么原因？**\n    *   **API Key无效**: 检查Key是否正确，或是否已过期。\n    *   **F点不足**: 登录FOFA官网查看F点余额。\n    *   **语法错误**: 检查您的FOFA查询语法是否正确。\n\n## 📞 支持与反馈\n\n- 🐛 **Bug 报告**：[GitHub Issues](https://github.com/qszx11/fofa_bot/issues)\n- 💡 **功能建议**：[GitHub Discussions](https://github.com/qszx11/fofa_bot/discussions)  ## 📞 支持与反馈\n\n## 🤝 贡献指南\n\n欢迎提交 Issue 和 Pull Request！\n\n1. Fork 本仓库\n2. 创建特性分支：`git checkout -b feature/amazing-feature`\n3. 提交更改：`git commit -m 'Add amazing feature'`\n4. 推送分支：`git push origin feature/amazing-feature`\n5. 提交 Pull Request\n\n## ⭐ Star 星星走起\n[![Stargazers over time](https://starchart.cc/qszx11/fofa_bot.svg?variant=adaptive)](https://starchart.cc/qszx11/fofa_bot)## Stargazers over time\n\n## 🙏 致谢\n\n[X-Fofa](https://github.com/sv3nbeast/X-Fofa) 提供深度追溯实现\n\n`Github社区`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgagmm%2Ffofa_bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgagmm%2Ffofa_bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgagmm%2Ffofa_bot/lists"}