Skip to content

Senflare/Senflare-IP

Repository files navigation

IP Test - Cloudflare优选IP采集器 v2.3.0

一个高效的Cloudflare优选IP采集、检测和地区识别工具,支持GitHub Actions自动执行。集成高级功能,提供标准模式和高级模式两种输出。

🚀 主要特性

  • 智能缓存系统: 支持TTL机制的缓存,避免重复API调用,自动限制缓存大小
  • 并发处理: 使用ThreadPoolExecutor大幅提升检测速度
  • 网络优化: 连接复用,减少网络开销,智能请求间隔
  • 智能重试: 动态调整重试策略,提高检测成功率
  • 地区识别: 支持多种API和智能缓存
  • 完善日志: 所有操作都有详细的Emoji日志记录
  • 错误处理: 特别优化403错误处理,增强稳定性
  • GitHub Actions: 支持自动化部署和执行
  • 高级功能: TCP Ping测试、带宽测试、综合评分排名
  • 多模式输出: 标准模式和高级模式,满足不同需求

📋 功能说明

1. IP采集

从多个源采集Cloudflare IP地址:

  • ✅ 行雺
  • ✅ Ymyuuu
  • ✅ 麒麟
  • ✅ Hostmonit
  • ✅ Mingyu API
  • ✅ 好哥哥
  • ✅ 微测网
  • ✅ VPS789
  • ✅ CMLiussss (电信/移动)

2. 并发检测

  • 使用20个并发线程检测IP可用性
  • 单端口检测提升速度(默认443端口)
  • 智能重试机制,动态调整超时时间

3. 地区识别

  • 优先使用缓存查询
  • 支持ipinfo.io lite和ip-api.com
  • 智能缓存TTL机制(7天)

4. 高级功能

  • TCP Ping测试: 多轮测试获取最小延迟、平均延迟和稳定性
  • 带宽测试: HTTP请求测试实际带宽性能
  • 综合评分: 结合延迟、带宽、稳定性计算综合评分
  • 智能筛选: 延迟排名前30%筛选,确保最优IP
  • 多模式输出: 标准模式(基础文件)+ 高级模式(优选文件)

🛠️ 本地使用

安装依赖

pip install requests urllib3

运行程序

python IPtest.py

输出文件

标准模式输出

  • IPlist.txt - 基础可用IP列表
  • Senflare.txt - 基础格式化结果
  • Cache.json - 地区缓存

高级模式输出

  • IPlist-Pro.txt - 高级优选IP列表(综合评分排序)
  • Senflare-Pro.txt - 高级格式化结果(包含详细性能数据)
  • Ranking.txt - 综合评分排名详情

🤖 GitHub Actions

自动执行

  • 每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图标,便于快速识别不同类型的操作。

🚨 注意事项

  1. API限制: 地区查询API有调用限制,程序已加入防限流机制
  2. 网络环境: 建议在稳定的网络环境下运行
  3. 资源消耗: 并发检测会消耗较多网络资源
  4. 缓存管理: 自动清理过期的缓存文件

📈 使用建议

  1. 首次运行: 建议在本地测试后再部署到GitHub Actions
  2. 定时执行: 建议设置合理的执行频率,避免过度调用API
  3. 结果验证: 定期检查输出结果的准确性
  4. 性能监控: 关注日志中的性能指标

🔄 更新日志

v2.3.0 (2025-10-25) - 高级功能集成版

  • 高级功能集成:集成TCP Ping测试、带宽测试、综合评分排名
  • 多模式输出:标准模式(基础文件)+ 高级模式(优选文件)
  • 智能筛选:延迟排名前30%筛选,确保最优IP
  • 综合评分:结合延迟、带宽、稳定性计算综合评分
  • 日志优化:完全按照DNSIPtest.py逻辑,修复日志顺序问题
  • 代码对齐:与DNSIPtest.py代码逻辑完全一致,仅IP获取方式不同
  • 文件输出:新增IPlist-Pro.txt、Senflare-Pro.txt、Ranking.txt高级输出文件
  • API优化:更新为ipinfo.io lite版本,提升稳定性和响应速度

v2.2.0 (2025-10-24) - 代码质量优化版

  • 代码逻辑优化:修复配置不一致问题,统一使用CONFIG配置
  • 健壮性增强:添加IP格式验证、端口配置检查、空IP检查
  • 异常处理完善:增强输入验证,完善错误处理机制
  • 日志输出优化:修复日志级别问题,明确区分缓存和API查询
  • 性能配置统一:修复线程数限制,正确使用配置的最大线程数
  • 代码质量提升:消除所有潜在问题,达到生产级代码质量

v2.1.0 (2025-10-24) - 性能大幅优化版

  • 性能大幅优化:超时时间15秒→8秒,重试次数2次→1次
  • 防卡住优化:添加批次超时保护,小批次处理(50→20个IP/批)
  • 地区识别优化:API查询间隔2秒→0.1秒,并发线程10→15个
  • 实时进度显示:添加详细的检测进度和耗时统计
  • 超快检测:3秒单IP超时,快速失败机制
  • 智能等待:每5个IP等待一次,大幅减少等待时间

v2.0.0 (2025-10-24)

  • ✅ 重命名主脚本为 IPtest.py
  • ✅ 优化缓存系统,支持TTL机制
  • ✅ 添加智能重试机制
  • ✅ 简化项目结构,移除外部依赖文件
  • ✅ 更新GitHub Actions工作流
  • ✅ 重命名缓存文件为 Cache.json
  • ✅ 完善日志系统,所有日志添加Emoji图标
  • ✅ 优化网络请求,添加请求间隔和更好的请求头
  • ✅ 增强错误处理,特别处理403错误
  • ✅ 限制缓存大小,防止缓存文件过大
  • ✅ 优化端口检测,默认只测试443端口,大幅提升检测速度
  • ✅ 优化缓存TTL,从24小时延长至7天,减少API调用
  • ✅ 更新IP源配置,移除无效源,添加新的可用API源

v1.0.0

  • ✅ 基础IP采集和检测功能
  • ✅ 并发处理优化
  • ✅ 地区识别功能
  • ✅ GitHub Actions支持

🤝 贡献

欢迎提交Issue和Pull Request来改进这个项目!

📄 许可证

MIT License

About

IP Test - Cloudflare优选IP采集器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages