corvus0x/IPTor0x

GitHub: corvus0x/IPTor0x

一个批量检测 IP 地址是否为 TOR 出口节点的 Python 命令行工具,同时生成结构化 HTML 和 CSV 报告。

Stars: 0 | Forks: 0

# IPTor0x ## 描述 IPTor0x 是一个 Python 脚本,用于分析 IP 地址列表并确定哪些是 TOR 出口节点。结果将显示在终端中,并保存在设计专业的 HTML 报告里。

## 功能 - 通过查询官方 TOR 出口列表来检查 IP 是否为 TOR 出口节点。 - 可通过 `-i/--input` 配置输入文件(默认为 `IPs.txt`)。 - 验证输入文件中的每一行条目,并跳过无效或重复的行,而不会导致程序崩溃。 - 如果无法下载 TOR 出口列表,程序将中止并给出明确的错误提示(不会生成有误导性的报告)。 - 生成分类结果的 HTML 和 CSV 报告,包含每个表格的实时搜索过滤器和响应式布局。 - 在报告的独立部分列出被忽略的无效/格式错误的条目,以便于审计。 - 通过 `--log` 标志提供可选的运行日志(时间戳、警告、错误)。 - 默认生成 HTML 和 CSV 报告;使用 `--no-report` 可跳过这两者。 - 在终端输出中显示结果。 ## 要求 无需外部依赖 —— 该脚本仅使用 Python 的标准库(Python 3.6+)。 ## 使用示例 本仓库中已附带包含示例 IP 的 `IPs.txt` —— 请将其内容替换为您要检查的 IP,或者使用 `-i` 指向另一个文件。 使用默认的 `IPs.txt` 运行: ``` python IPTor0x.py ``` 检查 `IPs.txt` 以外的其他文件(例如每个事件使用一个列表): ``` python IPTor0x.py -i incident_42.txt ``` 在 `iptor0x.log` 中保留运行审计记录(时间戳、警告、错误): ``` python IPTor0x.py --log ``` 只关注终端输出,跳过写入报告文件: ``` python IPTor0x.py --no-report ``` 检查自定义文件并记录日志,但不生成报告文件: ``` python IPTor0x.py -i incident_42.txt --log --no-report ``` ## 命令行选项 | 标志 | 默认值 | 描述 | |------|---------|--------------| | `-i FILE`, `--input FILE` | `IPs.txt` | 包含待检查 IP 列表的文件(每行一个)。 | | `--log` | 关闭 | 同时向 `iptor0x.log` 写入详细的、带时间戳的运行日志。 | | `--no-report` | 关闭 | 跳过生成 `report_IPTor0x.html` 和 `report_IPTor0x.csv`;仅将结果打印到终端。 | | `-h`, `--help` | — | 显示完整的选项列表并退出。 | ## 报告预览 ### HTML: 该脚本会生成一个包含分析结果的 tor_report.html 文件。

## 企业网络注意事项 该脚本从 `check.torproject.org` 下载 TOR 出口节点列表。许多企业的 Web 过滤器和代理(Zscaler、Palo Alto、Forcepoint、Bluecoat 等)会将 `torproject.org` 归类为“匿名化工具/代理规避”,这通常会被 SOC 监控拦截或标记 —— 尽管此处的意图是出于防御目的(检查已知 IP 是否为 TOR 出口节点)。如果脚本在企业环境中运行失败,这很可能是原因所在。建议针对该域请求代理白名单例外,或在运行前与您的安全团队协调。 ## 作者 由 corvus0x 开发。 ## 许可证 本项目采用 MIT 许可证授权。您可以根据需要自由使用和修改它。
标签:IP分析, Python, TOR检测, Web技术栈, 多模态安全, 威胁情报, 开发者工具, 无后门, 逆向工具