MarcusHoltz/ipblocklist-geofiltered-aggregator

GitHub: MarcusHoltz/ipblocklist-geofiltered-aggregator

Stars: 2 | Forks: 0

# 多国 IP 地址互联网黑名单聚合器 ![Workflow Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e2ca6faf9b175853.svg) ![Countries](https://img.shields.io/badge/Countries-6-278EF5) ![Total IPs Blocked](https://img.shields.io/badge/Blocked_IPs-394444-2D56A8) ![Issues](https://img.shields.io/github/issues/MarcusHoltz/ipblocklist-geofiltered-aggregator) ![Last Commit](https://img.shields.io/github/last-commit/MarcusHoltz/ipblocklist-geofiltered-aggregator) ![Forks](https://img.shields.io/github/forks/MarcusHoltz/ipblocklist-geofiltered-aggregator) 具有多国地理过滤功能的自动化 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, 地理围栏过滤, 威胁情报, 威胁防护, 安全防御评估, 带宽管理, 开发者工具, 开源框架, 持续集成, 网络安全, 网络拦截, 网络调试, 自动化, 自动笔记, 访问控制, 请求拦截, 逆向工具, 防御性安全, 防火墙规则, 隐私保护