MarcusHoltz/ipblocklist-geofiltered-aggregator
GitHub: MarcusHoltz/ipblocklist-geofiltered-aggregator
Stars: 2 | Forks: 0
# 多国 IP 地址互联网黑名单聚合器






具有多国地理过滤功能的自动化 IP 黑名单聚合
## 🚀 功能
- **多国支持**:从多个国家过滤 IP - 支持聚合列表或单独列表
- **自动化聚合**:将多个 IP 黑名单合并为一个去重列表
- **地理过滤**:按国家过滤 IP,支持多个国家
- **单独与合并文件**:生成每个国家的文件以及多国合并文件
- **Docker 支持**:在容器化环境中运行以确保一致性
- **GitHub Actions**:支持每日自动更新及手动触发
- **多来源**:通过环境配置支持多个 URL 来源
- **增强统计**:提供包含各国详细分类的综合报告
## 📊 最新统计
**最后更新时间:** 2026-03-04 04:19:12 UTC
## 📈 国家分布
```
pie showData title IP Blocklist Distribution by Country
"United States" : 19.1
"Germany" : 4.5
"United Kingdom" : 2.9
"Canada" : 2.4
"Australia" : 2.2
"South Korea" : 1.7
"Other/Unfiltered" : 67.2
```
## 总体摘要
- **总输入 IP 数:** 394,444
- **已处理国家数:** 6
- **合并后唯一 IP 数:** 129,554
- **合并输出文件:** `aggregated-multi-6countries-combined.txt`
- **总体过滤率:** 32.84%
## 各国结果
| 国家 | 代码 | 发现网络数 | 优化后网络数 | 匹配 IP 数 | 过滤率 | 输出文件 |
|---------|------|----------------|--------------------|-----------|-----------|-----------|
| United States | US | 184,107 | 182,462 | 75,499 | 19.14% | `aggregated-us-only.txt` |
| Canada | CA | 16,752 | 16,621 | 9,588 | 2.43% | `aggregated-ca-only.txt` |
| United Kingdom | GB | 33,936 | 33,761 | 11,498 | 2.91% | `aggregated-gb-only.txt` |
| Australia | AU | 11,343 | 11,264 | 8,497 | 2.15% | `aggregated-au-only.txt` |
| Germany | DE | 28,037 | 27,936 | 17,806 | 4.51% | `aggregated-de-only.txt` |
| South Korea | KR | 4,019 | 4,018 | 6,666 | 1.69% | `aggregated-kr-only.txt` |
## IP 来源
- **来源 1:** https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset
- **来源 2:** https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level2.netset
- **来源 3:** https://rules.emergingthreats.net/fwrules/emerging-Block-IPs.txt
- **来源 4:** https://raw.githubusercontent.com/borestad/blocklist-abuseipdb/main/abuseipdb-s100-30d.ipv4
- **来源 5:** https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.txt
- **来源 6:** https://raw.githubusercontent.com/stamparm/ipsum/master/levels/3.txt
- **来源 7:** https://www.spamhaus.org/drop/drop.txt
- **来源 8:** https://www.spamhaus.org/drop/edrop.txt
- **来源 9:** https://raw.githubusercontent.com/romainmarcoux/malicious-ip/refs/heads/main/full-300k-aa.txt
- **来源 10:** https://raw.githubusercontent.com/romainmarcoux/malicious-ip/refs/heads/main/full-300k-ab.txt
- **来源 11:** https://raw.githubusercontent.com/romainmarcoux/malicious-ip/refs/heads/main/full-300k-ac.txt
- **来源 12:** https://raw.githubusercontent.com/romainmarcoux/malicious-ip/refs/heads/main/full-300k-ad.txt
- **来源 14:** http://cinsscore.com/list/ci-badguys.txt
- **来源 15:** https://cdn.jsdelivr.net/gh/LittleJake/ip-blacklist/all_blacklist.txt
## 配置详情
### 📁 生成的文件
- **`aggregated.txt`** - 来自所有来源的 394,444 个聚合 IP
- **`aggregated-au-only.txt`** - 来自 AU 的 8,497 个 IP
- **`aggregated-ca-only.txt`** - 来自 CA 的 9,588 个 IP
- **`aggregated-de-only.txt`** - 来自 DE 的 17,806 个 IP
- **`aggregated-gb-only.txt`** - 来自 GB 的 11,498 个 IP
- **`aggregated-kr-only.txt`** - 来自 KR 的 6,666 个 IP
- **`aggregated-us-only.txt`** - 来自 US 的 75,499 个 IP
- **`aggregated-multi-6countries-combined.txt`** - 129,554 个唯一 IP(所有国家去重后)
## 🛴 安装
设置您自己的此仓库副本,以便为多个国家聚合和过滤您的 IP 黑名单。
### 👆 点击右上角的绿色 "Use this template" 按钮
1. **登录** GitHub 并导航至[此仓库](https://github.com/MarcusHoltz/ipblocklist-geofiltered-aggregator)。
2. 点击 **"Use this template"** 按钮(位于右上角)。
3. 选择 **Create a new repository**。输入名称(例如 `my-eu-badip-blocklist`),并确认。
4. 您的新仓库现在是独立的 — 它不会与原始仓库共享提交历史。
5. 您可以立即开始编辑或配置它,用于您自己的多国 IP 聚合项目。
*用法如下,介绍了如何在您的新 IP 聚合项目中使用 Github Actions 运行此仓库。*
## 🛠 用法
### GitHub Actions(推荐)
#### 第一步 - 启用写入权限
1. **启用 Actions**:前往 Settings > Actions > General > Workflow permissions
2. **设置权限**:选择 "Read and write permissions",点击 "Save"。
#### 第二步 - 配置仓库
3. **配置环境**:使用您想要的来源和国家编辑 `.env` 文件
4. **您喜欢的黑名单**:加载任意数量的黑名单,只需确保行以 `LIST1_`、`LIST2_`、`LIST3_` 等开头。
5. **多个国家**:国家可以用相同的方式修改,`COUNTRY_ISO_CODE_1`、`COUNTRY_NAME_1`、`COUNTRY_ISO_CODE_2`、`COUNTRY_NAME_2` 等。
6. **查找国家代码**:您可以在 [geoip2-ipv4 电子表格](https://datahub.io/core/geoip2-ipv4)中找到您的国家代码
7. **自动运行**:工作流每天运行两次。分别在 **02:17 AM/PM UTC**,或者如果您[修改了 cron 文件](https://github.com/MarcusHoltz/ipblocklist-geofiltered-aggregator/edit/main/.github/workflows/ip-aggregation.yml),它将在任何时候运行
#### 第三步 - 运行此 Action
8. **立即运行**:您可以使用顶部的 "Action" 标签运行此 Github Action
9. **生成多国黑名单**:在 "All workflows" 下您可以找到此 action
10. **Run workflow**:在此页面上,右侧有一个带有下拉菜单的按钮,可选择 "Run workflow"
11. **开始执行**:每次运行都会消耗您每月免费的 Github Actions 2000 分钟(33.3 小时)中的一部分
## ⚙ 配置
### 🌍 多国设置
`.env` 文件支持多个国家:
```
# European Union 示例
COUNTRY_ISO_CODE_1=DE
COUNTRY_NAME_1=Germany
COUNTRY_ISO_CODE_2=FR
COUNTRY_NAME_2=France
COUNTRY_ISO_CODE_3=NL
COUNTRY_NAME_3=Netherlands
COUNTRY_ISO_CODE_4=IT
COUNTRY_NAME_4=Italy
COUNTRY_ISO_CODE_5=ES
COUNTRY_NAME_5=Spain
```
这将生成:
- `aggregated-de-only.txt`(德国 IP)
- `aggregated-fr-only.txt`(法国 IP)
- `aggregated-nl-only.txt`(荷兰 IP)
- `aggregated-it-only.txt`(意大利 IP)
- `aggregated-es-only.txt`(西班牙 IP)
- `aggregated-multi-5countries-combined.txt`(所有国家合并,去重)
### 示例 .env 文件
```
# 添加您的 IP 列表来源
LIST_1=https://example.com/blocklist1.txt
LIST_2=https://example.com/blocklist2.txt
# 设置多个国家(新功能!)
COUNTRY_ISO_CODE_1=DE
COUNTRY_NAME_1=Germany
COUNTRY_ISO_CODE_2=FR
COUNTRY_NAME_2=France
# 配置路径(通常无需更改)
GEOIP_CSV_PATH=/data/geoip/geoip2-ipv4.csv
ALL_IPS_FROM_LISTS=/data/output/aggregated.txt
```
## 🏠 本地部署(替代方案)
如果您宁愿下载此仓库并离线运行此项目,说明如下:
### 1. 克隆仓库
第一步是从互联网下载文件,并在本地获取它们。
```
git clone https://github.com/MarcusHoltz/ipblocklist-geofiltered-aggregator.git
```
### 2. 在 .env 中配置您的来源和国家
下一步是根据您的喜好配置项目。编辑您的 `.env` 文件。您可以根据需要输入任意数量的基于 IP 的阻止列表,并配置多个国家。
```
nano .env
```
### 3. 使用 Docker Compose 运行
您现在可以运行项目并查看结果。
```
docker compose up --build
```
### 4. 检查结果
让我们看看发生了什么!
```
ls -la data/output/
```
## 📁 输出文件
### 各国文件
- `data/output/aggregated-{country-code}-only.txt` - 特定国家的 IP(例如,德国为 `aggregated-de-only.txt`)
### 合并的多国文件
- `data/output/aggregated-multi-{number-of-countries-total}countries-combined.txt` - 来自所有国家的合并 IP(去重)
- 示例:德国 + 法国 + 荷兰的 `aggregated-multi-3countries-combined.txt`
### 核心文件
- `data/output/aggregated.txt` - 来自所有来源的所有去重 IP(在国家过滤之前)
- `data/output/stats.md` - 包含各国详细分类的综合处理统计数据
## 🔄 工作流触发器
GitHub Action 在以下情况下自动运行:
- **每日计划**:每天两次。一次在 02:17 AM UTC,另一次在 02:17 PM UTC
- **文件更改**:当 `.env`、`Dockerfile` 或关键脚本被修改时
- **手动触发**:通过 GitHub Actions 界面
## 🧹 从干净的输出开始
如果您要自定义列表:
- 您应该删除 [./data/output](https://github.com/MarcusHoltz/ipblocklist-geofiltered-aggregator/edit/main/data/output) 文件夹,因为它只会包含与上次运行相关的数据。
- 当您自定义国家时,务必删除 [./data/output](https://github.com/MarcusHoltz/ipblocklist-geofiltered-aggregator/edit/main/data/output) 文件夹。
## ⚡ 性能
- **多国处理**:多个国家的并行处理
- **处理速度**:每个国家每秒过滤约 10,000 个 IP
- **并行处理**:针对大型数据集的多核优化
- **内存高效**:针对大文件的流式处理
- **优化查找**:使用 SubnetTree 进行基于整数的 IP 范围匹配
- **网络优化**:自动合并重叠的 CIDR 块
## 🌼 功能与优化
- **🌍 多国 IP 黑名单聚合**,用于全面的区域安全
- **📊 各国统计分析**,提供详细的过滤指标
- **🔄 通过 GitHub Actions 自动更新多国数据**
- **🚀 并行国家处理**,以提高性能
- **📁 单独和合并的输出文件**,用于灵活部署
- **🛡️ 区域威胁缓解**,具有可配置的多国规则
- **💾 内存高效处理**,即使处理多个大型国家数据集
- **🔗 网络优化**,自动合并 CIDR 块
## 👍 致谢
如果没有以下其他项目的出色工作,这个项目是不可能实现的:
### 🎩 Datopian
感谢 [Datopian](https://github.com/datasets/geoip2-ipv4) 维护 [GeoIP2 IPv4 数据集](https://datahub.io/core/geoip2-ipv4)。该数据集提供了 IP 地理定位所需的关键信息,使该项目能够根据多个国家同时过滤 IP。
- Datopian 的 [GeoIP2 IPv4 数据集](https://datahub.io/core/geoip2-ipv4)对于过滤和识别各个国家的 IP 地址至关重要,使该项目的动态多国功能成为可能。
### 🦘 Andrew Twin
特别感谢 [Andrew Twin](https://github.com/andrewtwin) 创建并分享 [IP Aggregator](https://github.com/andrewtwin/ip-aggregator) 项目。Andrew 在高效聚合 IP 黑名单方面的工作是此增强版多国版本的基础灵感和基础。
- [IP Aggregator](https://github.com/andrewtwin/ip-aggregator) 允许轻松下载、解析和过滤多个 IP 黑名单,该项目利用并扩展了它用于多国 IP 管理任务。
### 📗 黑名单维护者
我还要额外感谢各种 [IP 黑名单](https://github.com/topics/ip-blocklist)和 [IP 黑名单](https://github.com/topics/ip-blacklist)的维护者和贡献者。感谢你们维护最新的、社区驱动的威胁情报,这些情报构成了生成这些多国过滤文件的基础。虽然此仓库中的特定列表可能会有所不同,但对所有贡献者提高在线安全和隐私的集体奉献表示深深的感谢。
标签:Cutter, Docker, GitHub Actions, GUI应用, IP地址聚合, IP地理位置, IP黑名单, Linux运维, Rust语言, Streamlit, 地理围栏过滤, 威胁情报, 威胁防护, 安全防御评估, 带宽管理, 开发者工具, 开源框架, 持续集成, 网络安全, 网络拦截, 网络调试, 自动化, 自动笔记, 访问控制, 请求拦截, 逆向工具, 防御性安全, 防火墙规则, 隐私保护