Yccol_开源代理池全套工具_包含_API_PRO_基础版_GUI版
1- 杨CC对工具的评价
YCCOL 代理池开源了,包含___API_PRO版本_基础版_GUI版,等多个版本,同时也包含了数据库信息验证,相对而言比较全面.理论来讲同样可商用.
开源地址:https://github.com/Sgyling/yccol
本项目使用:Apache License Version 2.0 条款.
免责条款
- 无担保承诺:明确软件以 “现状(AS IS)” 形式提供,ASF 及贡献者不提供任何明示或隐含的担保,比如不保证软件功能正常、无缺陷,也不保证软件能满足用户的特定需求(如商业场景下的稳定性、兼容性)。
- 限制损害赔偿:除法律强制要求的情形外,ASF 及贡献者不对因使用或无法使用软件造成的任何间接损害(如商业损失、数据丢失、业务中断等)承担赔偿责任,仅可能对直接损害承担责任(需符合法律规定)。
版权说明
- 保留基础声明:用户在使用、复制、分发(包括商用分发)或修改软件时,必须在软件的所有副本或衍生版本中,完整保留原始的版权声明文本、本协议条款声明,以及软件中包含的免责声明内容。
- 标注修改内容:若用户对软件进行了修改(如二次开发),需在修改部分的显著位置标注 “修改声明”,明确指出该部分是用户新增或修改的内容,避免与原始软件的版权归属混淆。
2- Yccol,代理池系统框架架构
1. 项目概述
Yccol 是一个基于 FOFA 搜索引擎抓取的代理池工具,提供多种版本以满足不同用户需求。该系统能够自动获取、验证和管理代理 IP,支持 HTTP、HTTPS 和 SOCKS5 等多种代理协议,并提供 API 接口、命令行工具和图形界面等多种使用方式。
1.1 核心功能
- 基于 FOFA 搜索引擎抓取代理 IP
- 多线程验证代理可用性
- 支持 HTTP、HTTPS 和 SOCKS5 代理
- 提供 API 接口供第三方调用
- 支持代理 IP 自动切换
- 支持按地区筛选代理 IP
- 提供命令行和图形界面操作
1.2 版本划分
- API 版本:提供 RESTful API 接口,支持远程调用
- Pro 版本:高级命令行工具,提供完整功能
- GUI 版本:图形用户界面,易于操作
- 基础版本:简化版命令行工具,提供核心功能
2. 系统架构
2.1 总体架构
Yccol 代理池系统采用模块化设计,主要分为以下几个核心模块:
- 数据获取模块:负责从 FOFA 搜索引擎获取代理 IP
- 数据处理模块:负责处理和格式化获取的代理 IP 数据
- 代理验证模块:负责验证代理 IP 的可用性
- 代理管理模块:负责管理和切换代理 IP
- 用户接口模块:提供 API、命令行和图形界面等多种交互方式
2.2 模块关系图
1 | +------------------+ +------------------+ +------------------+ |
3. 核心模块详解
3.1 API 版本 (API/)
API 版本提供 RESTful 接口,允许用户通过 HTTP 请求获取和管理代理 IP。
3.1.1 主要组件
- app.py:Flask 应用主入口,提供 API 路由和请求处理
- IP_address.py:IP 地址处理工具
- cn_yanzheng.py/fcn_yanzheng.py:中国/国外代理验证模块
3.1.2 目录结构
- config/:配置文件和配置管理模块
- data_process/:数据处理模块,包含代理验证逻辑
- output/:输出目录,存储处理后的代理列表
- request_abt/:请求抽象模块,处理 HTTP 请求
3.1.3 API 接口
API 版本提供以下主要接口:
/api/users
:获取用户信息和验证密钥- 支持参数:
key
:API 密钥proxy
:代理类型(http、https、socks5)area
:地区筛选(all、cn、fcn)accuracy
:验证次数(1-3)quantity
:获取数量
3.2 Pro 版本 (Pro/)
Pro 版本是一个功能完整的命令行工具,提供更多高级功能和选项。
3.2.1 主要组件
- Yccol-Pro.py:主程序入口,提供命令行参数解析和功能调用
3.2.2 目录结构
- config/:配置文件和配置管理模块
- data_process/:数据处理模块
- output/:输出目录
- request_abt/:请求处理模块
- tools/:工具集合
3.2.3 命令行参数
Pro 版本支持多种命令行参数,包括:
-f/--fofa_get_ip
:通过 FOFA 获取 IP-vo/--Ver_out_ip
:验证 IP-s/--switch_ip
:开启切换 IP 功能-a/--Automatic_ip
:自动运行整套程序-fs/--get_socks5
:获取 SOCKS5 代理池-sy/--yanzheng_socks5
:验证 SOCKS5 代理池-sq/--socks5_switch
:切换 SOCKS5 代理池-v/--version
:获取当前版本-R/--re_time
:设置 IP 切换速率-P/--re_prot
:设置端口号- 等其他参数
3.3 GUI 版本 (GUI/)
GUI 版本提供图形用户界面,方便非技术用户使用。
3.3.1 主要组件
- Yccol - GUI.py:GUI 主程序,基于 PyQt5 实现
- icon.ico:应用图标
3.3.2 目录结构
- config/:配置文件
- dist/:打包发布目录
- get_response/:响应处理模块
- GUi/:GUI 组件模块
3.3.3 界面功能
GUI 版本提供友好的用户界面,包括:
- 密钥验证界面
- 代理获取和管理界面
- 设置界面
- 状态显示
3.4 基础版本 (fifa0/)
基础版本是一个简化的命令行工具,提供核心功能。
3.4.1 主要组件
- fifa0.py:主程序入口
- proxy_qh.py:代理切换模块
3.4.2 目录结构
- config/:配置文件
- data_process/:数据处理模块
- dist/:打包发布目录
- output/:输出目录
- request_abt/:请求处理模块
4. 数据流程
4.1 代理获取流程
- 用户通过接口/命令行/GUI 发起请求
- 系统验证用户身份和权限
- 系统构造 FOFA 查询语句并发送请求
- 接收 FOFA 返回的代理 IP 数据
- 处理和格式化代理 IP 数据
- 将代理 IP 数据保存到文件或数据库
4.2 代理验证流程
- 从文件或数据库读取代理 IP 列表
- 创建多线程验证任务
- 对每个代理 IP 发送测试请求
- 根据响应结果判断代理可用性
- 将可用代理保存到文件或数据库
4.3 代理切换流程
- 从文件或数据库读取可用代理列表
- 根据配置的切换速率定时切换代理
- 设置系统代理或应用代理
- 监控代理可用性,必要时重新选择代理
5. 技术栈
5.1 编程语言
- Python 3.x
5.2 主要依赖库
- Flask:Web 框架,用于 API 实现
- Requests:HTTP 客户端库,用于发送请求
- PyQt5:GUI 框架,用于图形界面实现
- MySQL Connector:MySQL 数据库连接器
- Threading:多线程库,用于并发处理
- UUID:生成唯一标识符
5.3 外部依赖
- FOFA 搜索引擎:用于获取代理 IP 数据
- MySQL 数据库:用于存储用户信息和代理数据(API 版本)
6. 安全机制
6.1 用户认证
- 基于密钥的 API 认证
- 密钥有效期管理
- MAC 地址绑定(部分版本)
6.2 数据安全
- 敏感配置信息加密存储
- 代理 IP 数据定期更新
- 验证失败的代理自动剔除
7. 扩展性设计
7.1 模块化架构
系统采用模块化设计,各功能模块相对独立,便于扩展和维护。
7.2 可配置项
- 代理获取参数可配置
- 验证规则可配置
- 切换策略可配置
7.3 扩展点
- 支持添加新的代理来源
- 支持添加新的验证方法
- 支持添加新的代理协议
8. 部署要求
8.1 环境要求
- Python 3.6+
- 网络连接(访问 FOFA 搜索引擎)
- MySQL 数据库(API 版本)
8.2 配置要求
- FOFA API 密钥
- 系统管理员权限(用于设置系统代理)
3- Yccol - 代理池工具使用及配置教程
Yccol 是一个基于 FOFA 搜索引擎抓取的代理池工具,提供多种版本以满足不同用户需求。该系统能够自动获取、验证和管理代理 IP,支持 HTTP、HTTPS 和 SOCKS5 等多种代理协议,并提供 API 接口、命令行工具和图形界面等多种使用方式。
查看框架请查看 arch.md
项目版本
本项目包含多个版本,满足不同场景的需求:
- API 版本:提供 RESTful API 接口,支持远程调用
- Pro 版本:高级命令行工具,提供完整功能
- GUI 版本:图形用户界面,易于操作
- 基础版本(fifa0):简化版命令行工具,提供核心功能
功能特点
- 基于 FOFA 搜索引擎抓取代理 IP
- 多线程验证代理可用性
- 支持 HTTP、HTTPS 和 SOCKS5 代理
- 提供 API 接口供第三方调用
- 支持代理 IP 自动切换
- 支持按地区筛选代理 IP
- 提供命令行和图形界面操作
环境要求
- Python 3.6+
- 网络连接(访问 FOFA 搜索引擎)
- FOFA API 密钥
- 系统管理员权限(用于设置系统代理)
依赖库
1 | flask |
安装与配置
1. 克隆项目
1 | git clone https://github.com/SGYLING/yccol.git |
2. 安装依赖
1 | pip install -r requirements.txt |
3. 配置 FOFA API 密钥
在 config/conf.txt
文件中添加您的 FOFA API 密钥:
1 | fofa_key='your_fofa_api_key' |
注意:只要注册登录 FOFA 就有免费的 API 密钥,不需要会员也可以使用(功能会受限)。
使用说明
API 版本使用
API 版本提供 RESTful 接口,允许用户通过 HTTP 请求获取和管理代理 IP。
启动 API 服务
1 | cd API |
API 接口说明
- 获取代理 IP:
/api/users
- 参数:
key
:API 密钥(必填)proxy
:代理类型,支持 http、https、socks5(必填)area
:地区,支持 all(全部)、cn(中国)、fcn(国外)(必填)accuracy
:代理验证次数,可选 1-3(非必填,默认为 1)quantity
:获取数量(非必填,不可与 accuracy 同时使用)
- 参数:
示例请求
1 | http://localhost:5000/api/users?key=your_api_key&proxy=http&area=cn |
开启地区验证功能
1 | # https://pan.quark.cn/s/5aa2cd9a42f3 |
Pro 版本使用
Pro 版本是一个功能完整的命令行工具,提供更多高级功能和选项。
命令行参数
1 | cd Pro |
参数说明
参数 | 全称 | 说明 |
---|---|---|
-f | –fofa_get_ip | 通过 FOFA 获取 IP |
-vo | –Ver_out_ip | 验证 IP |
-s | –switch_ip | 开启切换 IP 功能 |
-a | –Automatic_ip | 自动运行整套程序 |
-fs | –get_socks5 | 获取 SOCKS5 代理池 |
-sy | –yanzheng_socks5 | 验证 SOCKS5 代理池 |
-sq | –socks5_switch | 切换 SOCKS5 代理池 |
-v | –version | 获取当前版本 |
-R | –re_time | 更换 IP 切换速率,如 0.2 秒 |
-P | –re_prot | 更换端口号(默认:33333) |
-Qc | –qu_chong | 去重 IP 池文件 |
-Sz | –switch_zz | 切换代理但不使用全局代理,支持 Linux |
-Cy | –chi_xu_yz | 验证 HTTP 代理 |
-K | –Key_mac | 初始化密钥 |
示例命令
1 | # 获取代理 IP |
GUI 版本使用
GUI 版本提供图形用户界面,方便非技术用户使用。
启动 GUI
1 | cd GUI |
使用步骤
- 输入密钥进行验证
- 在主界面选择需要的功能:
- 获取代理
- 验证代理
- 切换代理
- 设置参数
基础版本使用
基础版本是一个简化的命令行工具,提供核心功能。
启动基础版本
1 | cd fifa0 |
使用步骤
运行后会显示菜单,输入对应数字选择功能:
- 获取代理
- 验证代理
- 开启代理切换
- 全自动操作(包含:获取代理、验证代理、代理切换)
配置文件说明
config/conf.txt
主要配置文件,包含以下设置:
1 | fofa_key='your_fofa_api_key' # FOFA API 密钥 |
config/config.py
包含更多高级配置,如:
- FOFA 查询语句(Base64 编码)
- 不同地区的查询参数
- 版本信息
- 配置文件处理函数
数据文件
output/proxy.txt
存储获取到的 HTTP/HTTPS 代理 IP
output/proxy_v.txt
存储验证后的可用 HTTP/HTTPS 代理 IP
output/socks5.txt
存储获取到的 SOCKS5 代理 IP
output/socks5_v.txt
存储验证后的可用 SOCKS5 代理 IP
工作流程
- 获取代理:从 FOFA 搜索引擎获取代理 IP
- 验证代理:多线程验证代理 IP 的可用性
- 管理代理:将可用代理保存到文件
- 切换代理:根据配置的速率自动切换代理 IP
注意事项
- 使用前请确保已配置有效的 FOFA API 密钥
- 切换代理功能需要管理员权限
- 代理池的质量取决于 FOFA 搜索结果
- 建议定期更新代理池以保证可用性
- 使用 API 版本需要配置 MySQL 数据库
常见问题
无法获取代理 IP
- 检查 FOFA API 密钥是否正确
- 检查网络连接是否正常
- 检查 FOFA API 调用次数是否超限
代理验证失败率高
- 代理 IP 本身可能不稳定
- 尝试增加验证超时时间
- 尝试使用不同地区的代理
代理切换不生效
- 确保以管理员权限运行
- 检查端口是否被占用
- 检查系统代理设置是否正确
联系方式
- B站UP主:疯狂的杨CC
- QQ:1041041042
- 微信:Yancy_76
- 支持一下up主
版本信息
当前版本:V1.3.1
4- 结束语
- 需要技术文章,记得将ycc77.com 添加到书签栏哦~
- 需要资源,记得将yancy77.cn 添加到书签栏哦~
- B站: 疯狂的杨CC
- 抖音: 疯狂的杨CC
- 快手: 疯狂的杨CC
- 91: 疯狂的杨CC
- p站: 疯狂的杨CC