Sanexxxx777/vpn-whitelist-tools
GitHub: Sanexxxx777/vpn-whitelist-tools
CIDR 子网连通性扫描器,用于在 IP 白名单受限的移动网络中批量探测可达子网并与云托管提供商 ASN 范围交叉比对。
Stars: 0 | Forks: 0
# vpn-whitelist-tools
CIDR 子网连通性扫描器,用于在移动网络上进行 split-routing / allowlist 测试。
## 功能
某些移动网络将数据访问限制在固定的 IP 子网白名单内(例如少数几个已批准的服务),而其他所有内容均无法访问。此工具集可帮助您:
1. 获取一份 CIDR 子网列表(白名单),并测试在您当前的网络连接下,哪些子网是实际可达的。
2. 将可达的子网与已知的云/托管提供商的 ASN 范围进行交叉比对,从而您可以识别出哪些托管提供商恰好拥有白名单内的 IP 空间。
3. 快速检查特定 IP(例如新配置的 VM)是否位于先前发现的可达子网内——当提供商从庞大且不可预测的地址池中分配地址,而您需要找到一个可用地址时,这非常有用。
它是一款用于 split-tunnel / allowlist-only 网络环境的通用网络诊断工具——不绑定于任何特定的提供商或服务。
## 文件
- `scan_whitelist.py` — 扫描 CIDR 列表,通过 TCP(443/80,ICMP 备选)测试连通性,并可选择通过 WHOIS/ASN 查询解析子网所有者
- `check_ip.py` — 检查单个 IP 地址是否位于先前发现的可达子网内
- `cidrwhitelist.txt` — 示例输入:公共 CIDR 白名单
([来源](https://github.com/hxehex/russia-mobile-internet-whitelist))
- `reachable_all.json` — 完整扫描运行的示例输出
## 用法
需要 Python 3(仅使用标准库,无外部依赖)。
```
# 对 cidrwhitelist.txt 中的所有子网进行完整扫描(多线程,30k 个子网大约需要 3-7 分钟)
python3 scan_whitelist.py --full-test
# 仅对已知的托管提供商 ASN 范围进行快速扫描
python3 scan_whitelist.py --fast
python3 scan_whitelist.py --test
# 基于 WHOIS 的扫描以解析子网所有者
python3 scan_whitelist.py --full
# 检查特定 IP 是否属于可到达的子网
python3 check_ip.py
```
## 工作原理
`scan_whitelist.py` 读取 CIDR 范围列表,启动一个线程池,并通过 TCP 连接(端口 443,备选 80)和 ICMP ping 对每个子网的一台主机进行探测。可达的子网将按 /16 前缀分组并写入 `reachable_all.json`。伴随的步骤可以通过公共 WHOIS 查询将子网映射到已知的云/托管 ASN(Yandex Cloud、VK Cloud、Selectel、Hetzner、DigitalOcean 等),以便您查看哪些提供商拥有可达的 IP 空间。
`check_ip.py` 是针对已保存扫描结果的轻量级查询——给定一个 IP,它会报告该 IP 属于哪个可达子网(如果有)。
## 作者
Aleksandr Shulgin ([@Sanexxxx777](https://github.com/Sanexxxx777)) (@Aleksandr_NFA)
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
## На русском (кратко)
Сканер доступности CIDR-подсетей для split-routing / allowlist-тестирования на мобильных сетях,
где доступ ограничен фиксированным списком разрешённых подсетей. `scan_whitelist.py` проверяет,
какие подсети из списка реально доступны (TCP 443/80 + ICMP), сопоставляет их с диапазонами
известных хостинг-провайдеров (Yandex Cloud, VK Cloud, Selectel, Hetzner, DigitalOcean и др.) и
сохраняет результат в `reachable_all.json`. `check_ip.py` проверяет, попадает ли конкретный IP в
уже найденную доступную подсеть. Только своя сеть/устройства — не для сканирования чужих сетей
без разрешения.
标签:CIDR, Python, 情报分析, 扫描器, 无后门, 白名单, 移动网络, 网络诊断, 路由测试, 逆向工具