corvus0x/IPAbuseChecker0x

GitHub: corvus0x/IPAbuseChecker0x

基于 AbuseIPDB API 的批量 IP 威胁情报查询与报告生成工具,帮助事件响应团队高效分析大量可疑 IP 并输出可视化报告。

Stars: 1 | Forks: 0

# IP Abuse Checker 0x 此脚本允许您使用 [AbuseIPDB](https://www.abuseipdb.com/) API 分析 IP 地址列表。它会生成 CSV 和 HTML 格式的报告,并在控制台中以格式良好且带有颜色高亮的表格显示详细的摘要。当需要调查大量 IP 的安全事件时,它特别有用。 AbuseIPDB 每天提供最多 1,000 个 IP 的免费分析,允许用户免费检查多个地址。 此外,脚本会根据其置信度分数将 IP 分为三类,置信度分数表示它们存在风险的可能性: 🔴 高风险 IP(置信度 >40) 🟠 中等风险 IP(置信度 1-39) 🟢 信息提示(置信度 0)

## 特性 - 并行查询多个 IP 地址以提高效率。 - 生成 **交互式 HTML 报告**:支持搜索、按风险级别或 TOR 筛选、对任意列进行排序,并可直接将标记的 IP 复制到剪贴板以填充黑名单。每个 IP 都会链接到其 AbuseIPDB 页面。 - 创建 **CSV 报告**,用于运行查询、导入数据程序或生成表格。 - 在控制台中显示带有风险类别和 TOR 节点的可视化摘要。 - **零依赖**:在纯净的 Python 3.8+ 环境下即可运行,无需任何 `pip install`。 - 报告每个 IP 的 **使用类型**(数据中心、固定线路 ISP、CDN 等),有助于快速区分托管基础设施和家庭宽带连接。 - 验证输入列表:在消耗 API 配额之前,会跳过空行、注释(`#`)、重复项、格式错误的条目以及私有/保留地址。 - 在遇到临时故障时使用指数退避策略进行重试,并遵守 API 的速率限制;如果密钥被拒绝或每日配额用尽,则会提前终止。 - 在控制台和 HTML 报告中列出所有失败的查询和跳过的条目,确保没有任何 IP 会被静默忽略。 ## 要求 **Python 3.8 或更高版本。无需其他要求。** 该脚本仅使用 Python 标准库,因此没有 `pip install` 步骤,无需设置虚拟环境,也不需要信任任何第三方包。克隆仓库,填入您的 API 密钥即可运行。 ## 用法 1. 在执行脚本之前,请在脚本中插入您的 AbuseIPDB API 密钥。 2. 将要分析的 IP 地址放在一个名为 `ips.txt` 的文件中(每行一个 IP)。仓库自带了一个小样本列表,方便您在首次运行时查看报告样式,之后您可以将其替换为自己的 IP。 3. 运行脚本: ``` python IPAbuseChecker0x.py ``` 4. 执行完成后,将生成以下文件: - **`report_IPAbuseChecker0x.html`**:带有颜色编码风险级别的 HTML 报告,便于解读。 - **`results_IPAbuseChecker0x.csv`**:包含已分析 IP 的详细信息。 - 控制台中将显示结构化的 **摘要表**。 ### 命令行选项 无需编辑脚本即可更改输入和输出文件: ``` -i, --input INPUT file with one IP per line (default: ips.txt) -c, --csv CSV CSV output file (default: results_IPAbuseChecker0x.csv) -o, --html HTML HTML output file (default: report_IPAbuseChecker0x.html) --no-logo do not print the banner ``` 例如,要分析另一个列表并将报告写入其他位置: ``` python IPAbuseChecker0x.py -i incident_ips.txt -c incident.csv -o incident.html ``` ## 配置 ### API 密钥 该脚本使用 **AbuseIPDB** API,因此您需要一个 API 密钥。将脚本中的 `API_KEY` 变量替换为您自己的密钥: ``` API_KEY = 'YOUR_API_KEY' ``` 您可以通过在 [abuseipdb.com](https://www.abuseipdb.com/) 注册来获取免费密钥。免费层级每天最多允许 1,000 次 IP 检查。 ### 报告时间范围(可选) 默认情况下,脚本仅考虑过去 360 天内的报告。您可以在此行中更改它(有效范围:1 到 365): ``` MAX_AGE_IN_DAYS = 360 ``` ## 输出示例 ### HTML: 生成的可视化报告带有颜色编码,用于指示每个 IP 的风险级别。它是一个独立的文件,不包含任何外部资源,因此可以直接作为附件添加到工单中或直接共享,并且支持离线查看。 除了表格之外,该报告还提供: - **概览卡片和风险分布条**,让您可以直观地了解这批数据的整体情况。 - **主要国家/地区**,显示每个国家/地区贡献的地址数量以及其中被标记的数量,以便一眼发现攻击来源。 - **搜索框**,可匹配任何字段:IP、ISP、域名、国家或使用类型。 - **筛选器**,支持按高、中、信息提示、TOR 和被报告进行筛选。 - **可排序的列**。IP 按实际数字顺序排序(而非字母顺序),日期按时间先后排序。 - **复制显示的 IP / 复制标记的 IP** 按钮,可将 IP 逐行复制到剪贴板,随时可粘贴到防火墙规则或 SIEM 查询中。 - **每个 IP 上的链接** 指向其 AbuseIPDB 页面,以查看完整的报告历史记录。 - **打印样式表**:隐藏工具栏并展开所有行,因此使用 `Ctrl+P` 可生成整洁的 PDF。

### CSV: 生成结构化的 CSV 报告,其中包含每个已分析 IP 的详细信息,包括置信度分数、ISP 详情、域名、国家/地区以及该 IP 是否与 TOR 节点相关联。 注意:CSV 文件是以传统格式生成的,但下图将其显示为表格,以便更好地可视化所有列和数据。

## 贡献 如果您想改进脚本或添加新功能,欢迎随时贡献!Fork 仓库并提交 **pull request**。 ## 许可证 本项目基于 MIT 许可证授权。您可以根据需要自由使用和修改它。
标签:GitHub, IP 地址批量处理, Python, Ubuntu, 代码示例, 多模态安全, 威胁情报, 安全, 库, 应急响应, 开发者工具, 数字取证, 数据分析, 无后门, 自动化脚本, 超时处理