wjhcd145/geoip-filter

GitHub: wjhcd145/geoip-filter

一款零依赖的命令行网络工具,通过 IP 首段映射和 CIDR 匹配快速按国家或网段过滤 IP 地址。

Stars: 0 | Forks: 0

# GeoIP Filter — 地理 IP 地址过滤器与排序工具

GeoIP Filter CLI - Geographic IP address filtering tool showing country filtering with statistics output

快速地理 IP 地址过滤器 — 支持 20+ 个国家、CIDR 匹配、管道支持、零依赖

GeoIP Filter Version MIT License Python 3.6+ Required Zero Dependencies 20+ Countries Supported Network Tool

## 概述 **GeoIP Filter** 是一款轻量级的网络工具,用于按地理区域过滤 IP 地址列表。它使用第一段 (octet) 映射来按国家快速排序和过滤 IP,无需任何外部数据库或 API 调用。 ### 零依赖 仅使用纯 Python 3 标准库。无需 `pip install`,无需 `geoip2`,无需外部 API。 ## 功能特性 - 内置 **20+ 个国家**(以色列、美国、俄罗斯、中国、德国、英国、法国、巴西、印度、日本、伊朗、阿联酋、沙特阿拉伯、土耳其、埃及、尼日利亚、南非、澳大利亚、韩国、新加坡) - **自定义 Octet 集合** — 定义您自己的首段 (first-octet) 范围 - **CIDR 范围匹配** — 按网络范围进行过滤(例如 `192.168.0.0/16`) - **反向模式** — 输出不匹配条件的 IP - **管道/Stdin 支持** — 通过 `cat` 和 `|` 集成到处理管道中 - **多种输出格式** — Text、JSON、CSV - **统计信息** — 匹配数量、匹配率、不匹配数量 - **多国家过滤** — 组合多个国家(例如 `-c il,us,ru`) - **范围语法** — Octet 范围(例如 `--octets 1-10,50-60`) ## 安装说明 ### 前置条件 - Python 3.6+ - **无需 pip install** — 零外部依赖 ### 下载 ``` git clone https://github.com/wjhcd145/geoip-filter.git cd geoip-filter chmod +x geoip_filter.py ``` ## 使用方法 ### 按国家过滤 ``` python3 geoip_filter.py -i ips.txt -c il -o israel_ips.txt ``` ### 过滤多个国家 ``` python3 geoip_filter.py -i scan.txt -c us,ru,cn -o filtered.txt ``` ### 自定义 Octet ``` python3 geoip_filter.py -i ips.txt --octets 192,10,172 -o private.txt ``` ### Octet 范围 ``` python3 geoip_filter.py -i ips.txt --octets 1-10,50-60 -o matched.txt ``` ### CIDR 范围匹配 ``` python3 geoip_filter.py -i ips.txt --cidr 192.168.1.0/24,10.0.0.0/8 -o matched.txt ``` ### 反向过滤(排除) ``` python3 geoip_filter.py -i ips.txt -c il --reverse -o non_israel.txt ``` ### 管道/Stdin 模式 ``` cat scan_results.txt | python3 geoip_filter.py -c il --stdin -o filtered.txt ``` ### JSON 输出 ``` python3 geoip_filter.py -i ips.txt -c il -o output.json --format json ``` ### CSV 输出 ``` python3 geoip_filter.py -i ips.txt -c il -o output.csv --format csv ``` ### 列出支持的国家 ``` python3 geoip_filter.py --list-countries ``` ### 完整帮助 ``` python3 geoip_filter.py --help ``` ### CLI 选项 | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-i, --input` | 包含 IP 地址的输入文件 | — | | `-o, --output` | 用于存放过滤后 IP 的输出文件 | stdout | | `-c, --country` | 国家代码(例如 `il`、`us,ru`) | — | | `--octets` | 自定义首段 octet 集合(例如 `192,10,172`) | — | | `--cidr` | 要匹配的 CIDR 范围(例如 `192.168.0.0/16`) | — | | `--reverse` | 反向过滤(排除匹配的 IP) | False | | `--stdin` | 从 stdin 读取 IP(管道模式) | False | | `--format` | 输出格式:`text`、`json`、`csv` | text | | `--stats` | 显示详细统计信息 | False | | `--list-countries` | 列出所有支持的国家 | — | | `--no-color` | 禁用彩色输出 | False | | `--version` | 显示版本号 | — | ## 支持的国家 | 代码 | 国家 | 代码 | 国家 | |------|---------|------|--------| | `il` | 以色列 | `ir` | 伊朗 | | `us` | 美国 | `ae` | 阿联酋 | | `ru` | 俄罗斯 | `sa` | 沙特阿拉伯 | | `cn` | 中国 | `tr` | 土耳其 | | `de` | 德国 | `eg` | 埃及 | | `gb` | 英国 | `ng` | 尼日利亚 | | `fr` | 法国 | `za` | 南非 | | `br` | 巴西 | `au` | 澳大利亚 | | `in` | 印度 | `kr` | 韩国 | | `jp` | 日本 | `sg` | 新加坡 | ## 应用场景 - **网络扫描** — 在处理之前按地理区域过滤扫描结果 - **日志分析** — 从服务器日志中提取特定国家的 IP - **渗透测试** — 针对特定的地理 IP 范围进行测试 - **安全研究** — 按国家对 IP 进行分类以用于威胁情报 - **DevOps** — 按区域过滤基础设施 IP - **CTF 竞赛** — 排序和分类 IP 列表 ## 免责声明 本工具仅供**教育和授权测试目的**使用。请仅对您拥有或已获得明确书面测试权限的系统使用。作者对任何滥用行为不承担责任。 ## 许可证 MIT 许可证 — 详见 [LICENSE](LICENSE) 文件。 ## 作者 **MrNobody** 版本: 1.0.0
标签:CIDR, IP过滤, Python, 地理定位, 文档结构分析, 无后门, 网络工具, 逆向工具