一个高效的Cloudflare优选IP采集、检测和地区识别工具,支持GitHub Actions自动执行。集成高级功能,提供标准模式和高级模式两种输出。
- 智能缓存系统: 支持TTL机制的缓存,避免重复API调用,自动限制缓存大小
- 并发处理: 使用ThreadPoolExecutor大幅提升检测速度
- 网络优化: 连接复用,减少网络开销,智能请求间隔
- 智能重试: 动态调整重试策略,提高检测成功率
- 地区识别: 支持多种API和智能缓存
- 完善日志: 所有操作都有详细的Emoji日志记录
- 错误处理: 特别优化403错误处理,增强稳定性
- GitHub Actions: 支持自动化部署和执行
- 高级功能: TCP Ping测试、带宽测试、综合评分排名
- 多模式输出: 标准模式和高级模式,满足不同需求
从多个源采集Cloudflare IP地址:
- ✅ 行雺
- ✅ Ymyuuu
- ✅ 麒麟
- ✅ Hostmonit
- ✅ Mingyu API
- ✅ 好哥哥
- ✅ 微测网
- ✅ VPS789
- ✅ CMLiussss (电信/移动)
- 使用20个并发线程检测IP可用性
- 单端口检测提升速度(默认443端口)
- 智能重试机制,动态调整超时时间
- 优先使用缓存查询
- 支持ipinfo.io lite和ip-api.com
- 智能缓存TTL机制(7天)
- TCP Ping测试: 多轮测试获取最小延迟、平均延迟和稳定性
- 带宽测试: HTTP请求测试实际带宽性能
- 综合评分: 结合延迟、带宽、稳定性计算综合评分
- 智能筛选: 延迟排名前30%筛选,确保最优IP
- 多模式输出: 标准模式(基础文件)+ 高级模式(优选文件)
pip install requests urllib3python IPtest.pyIPlist.txt- 基础可用IP列表Senflare.txt- 基础格式化结果Cache.json- 地区缓存
IPlist-Pro.txt- 高级优选IP列表(综合评分排序)Senflare-Pro.txt- 高级格式化结果(包含详细性能数据)Ranking.txt- 综合评分排名详情
- 每3小时自动执行一次
- 支持手动触发
- 自动提交结果到仓库
# .github/workflows/IPtest.yml
name: IP Test
on:
schedule:
- cron: '0 */3 * * *' # 每3小时执行
workflow_dispatch: # 手动触发- Ubuntu 20.04+
- Python 3.11
CONFIG = {
"ip_sources": [...], # IP采集源列表
"test_ports": [443], # 测试核心端口
"timeout": 8, # IP采集超时时间
"api_timeout": 5, # API查询超时时间
"query_interval": 0.1, # API查询间隔
"max_workers": 20, # 最大并发线程数
"batch_size": 10, # 批量处理大小
"cache_ttl_hours": 168, # 缓存TTL(7天)
}支持多端口自定义检测,提升灵活性:
- 默认端口: 443 (HTTPS标准端口)
- 可选端口: 2052, 2053, 2082, 2083, 2086, 2087, 2095, 2096, 8443, 8444 (Cloudflare专用端口)
- 自定义配置: 在
CONFIG["test_ports"]中修改,支持多个端口同时测试 - 配置示例:
"test_ports": [443, 2052, 2053]- 同时测试HTTPS和Cloudflare专用端口
程序会生成详细的日志文件包含:
- 🚀 程序启动和结束状态
- 📊 IP采集过程详情和统计
- 🔢 IP去重和排序信息
- 📡 IP检测结果统计
- 🌍 地区识别过程详情
- 📄 文件保存状态确认
⚠️ 警告和错误信息记录- 💾 缓存操作状态
- 🏁 性能指标和完成统计
所有日志都使用Emoji图标,便于快速识别不同类型的操作。
- API限制: 地区查询API有调用限制,程序已加入防限流机制
- 网络环境: 建议在稳定的网络环境下运行
- 资源消耗: 并发检测会消耗较多网络资源
- 缓存管理: 自动清理过期的缓存文件
- 首次运行: 建议在本地测试后再部署到GitHub Actions
- 定时执行: 建议设置合理的执行频率,避免过度调用API
- 结果验证: 定期检查输出结果的准确性
- 性能监控: 关注日志中的性能指标
- ✅ 高级功能集成:集成TCP Ping测试、带宽测试、综合评分排名
- ✅ 多模式输出:标准模式(基础文件)+ 高级模式(优选文件)
- ✅ 智能筛选:延迟排名前30%筛选,确保最优IP
- ✅ 综合评分:结合延迟、带宽、稳定性计算综合评分
- ✅ 日志优化:完全按照DNSIPtest.py逻辑,修复日志顺序问题
- ✅ 代码对齐:与DNSIPtest.py代码逻辑完全一致,仅IP获取方式不同
- ✅ 文件输出:新增IPlist-Pro.txt、Senflare-Pro.txt、Ranking.txt高级输出文件
- ✅ API优化:更新为ipinfo.io lite版本,提升稳定性和响应速度
- ✅ 代码逻辑优化:修复配置不一致问题,统一使用CONFIG配置
- ✅ 健壮性增强:添加IP格式验证、端口配置检查、空IP检查
- ✅ 异常处理完善:增强输入验证,完善错误处理机制
- ✅ 日志输出优化:修复日志级别问题,明确区分缓存和API查询
- ✅ 性能配置统一:修复线程数限制,正确使用配置的最大线程数
- ✅ 代码质量提升:消除所有潜在问题,达到生产级代码质量
- ✅ 性能大幅优化:超时时间15秒→8秒,重试次数2次→1次
- ✅ 防卡住优化:添加批次超时保护,小批次处理(50→20个IP/批)
- ✅ 地区识别优化:API查询间隔2秒→0.1秒,并发线程10→15个
- ✅ 实时进度显示:添加详细的检测进度和耗时统计
- ✅ 超快检测:3秒单IP超时,快速失败机制
- ✅ 智能等待:每5个IP等待一次,大幅减少等待时间
- ✅ 重命名主脚本为
IPtest.py - ✅ 优化缓存系统,支持TTL机制
- ✅ 添加智能重试机制
- ✅ 简化项目结构,移除外部依赖文件
- ✅ 更新GitHub Actions工作流
- ✅ 重命名缓存文件为
Cache.json - ✅ 完善日志系统,所有日志添加Emoji图标
- ✅ 优化网络请求,添加请求间隔和更好的请求头
- ✅ 增强错误处理,特别处理403错误
- ✅ 限制缓存大小,防止缓存文件过大
- ✅ 优化端口检测,默认只测试443端口,大幅提升检测速度
- ✅ 优化缓存TTL,从24小时延长至7天,减少API调用
- ✅ 更新IP源配置,移除无效源,添加新的可用API源
- ✅ 基础IP采集和检测功能
- ✅ 并发处理优化
- ✅ 地区识别功能
- ✅ GitHub Actions支持
欢迎提交Issue和Pull Request来改进这个项目!
MIT License