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 代理池系统采用模块化设计,主要分为以下几个核心模块:

  1. 数据获取模块:负责从 FOFA 搜索引擎获取代理 IP
  2. 数据处理模块:负责处理和格式化获取的代理 IP 数据
  3. 代理验证模块:负责验证代理 IP 的可用性
  4. 代理管理模块:负责管理和切换代理 IP
  5. 用户接口模块:提供 API、命令行和图形界面等多种交互方式

2.2 模块关系图

1
2
3
4
5
6
7
8
9
10
11
12
+------------------+     +------------------+     +------------------+
| | | | | |
| 数据获取模块 +---->+ 数据处理模块 +---->+ 代理验证模块 |
| | | | | |
+------------------+ +------------------+ +--------+---------+
|
v
+------------------+ +------------------+ +------------------+
| | | | | |
| 用户接口模块 +<----+ 配置管理模块 |<----+ 代理管理模块 |
| | | | | |
+------------------+ +------------------+ +------------------+

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 代理获取流程

  1. 用户通过接口/命令行/GUI 发起请求
  2. 系统验证用户身份和权限
  3. 系统构造 FOFA 查询语句并发送请求
  4. 接收 FOFA 返回的代理 IP 数据
  5. 处理和格式化代理 IP 数据
  6. 将代理 IP 数据保存到文件或数据库

4.2 代理验证流程

  1. 从文件或数据库读取代理 IP 列表
  2. 创建多线程验证任务
  3. 对每个代理 IP 发送测试请求
  4. 根据响应结果判断代理可用性
  5. 将可用代理保存到文件或数据库

4.3 代理切换流程

  1. 从文件或数据库读取可用代理列表
  2. 根据配置的切换速率定时切换代理
  3. 设置系统代理或应用代理
  4. 监控代理可用性,必要时重新选择代理

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
2
3
4
flask
mysql-connector-python
requests
PyQt5 (仅GUI版本需要)

安装与配置

1. 克隆项目

1
2
git clone https://github.com/SGYLING/yccol.git
cd yccol

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
2
cd API
python app.py

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
2
3
# https://pan.quark.cn/s/5aa2cd9a42f3
# 访问上述链接,然后下载文件夹中的两个BIN文件.
# 将两个BIN文件存放在API/config中后,启动API即可

Pro 版本使用

Pro 版本是一个功能完整的命令行工具,提供更多高级功能和选项。

命令行参数

1
2
cd Pro
python Yccol-Pro.py [参数]

参数说明

参数 全称 说明
-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
2
3
4
5
6
7
8
9
10
11
# 获取代理 IP
python Yccol-Pro.py -f

# 验证代理 IP
python Yccol-Pro.py -vo

# 自动运行整套程序
python Yccol-Pro.py -a

# 设置 IP 切换速率为 0.5 秒
python Yccol-Pro.py -R 0.5

GUI 版本使用

GUI 版本提供图形用户界面,方便非技术用户使用。

启动 GUI

1
2
cd GUI
python "Yccol - GUI.py"

使用步骤

  1. 输入密钥进行验证
  2. 在主界面选择需要的功能:
    • 获取代理
    • 验证代理
    • 切换代理
    • 设置参数

基础版本使用

基础版本是一个简化的命令行工具,提供核心功能。

启动基础版本

1
2
cd fifa0
python fifa0.py

使用步骤

运行后会显示菜单,输入对应数字选择功能:

  1. 获取代理
  2. 验证代理
  3. 开启代理切换
  4. 全自动操作(包含:获取代理、验证代理、代理切换)

配置文件说明

config/conf.txt

主要配置文件,包含以下设置:

1
2
3
fofa_key='your_fofa_api_key'  # FOFA API 密钥
get_time='0.2' # IP 切换速率,单位为秒
port='33333' # 代理端口号

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

工作流程

  1. 获取代理:从 FOFA 搜索引擎获取代理 IP
  2. 验证代理:多线程验证代理 IP 的可用性
  3. 管理代理:将可用代理保存到文件
  4. 切换代理:根据配置的速率自动切换代理 IP

注意事项

  1. 使用前请确保已配置有效的 FOFA API 密钥
  2. 切换代理功能需要管理员权限
  3. 代理池的质量取决于 FOFA 搜索结果
  4. 建议定期更新代理池以保证可用性
  5. 使用 API 版本需要配置 MySQL 数据库

常见问题

无法获取代理 IP

  • 检查 FOFA API 密钥是否正确
  • 检查网络连接是否正常
  • 检查 FOFA API 调用次数是否超限

代理验证失败率高

  • 代理 IP 本身可能不稳定
  • 尝试增加验证超时时间
  • 尝试使用不同地区的代理

代理切换不生效

  • 确保以管理员权限运行
  • 检查端口是否被占用
  • 检查系统代理设置是否正确

联系方式

  • B站UP主:疯狂的杨CC
  • QQ:1041041042
  • 微信:Yancy_76
  • 支持一下up主
  • er_wei_ma

版本信息

当前版本:V1.3.1

4- 结束语

  • 需要技术文章,记得将ycc77.com 添加到书签栏哦~
  • 需要资源,记得将yancy77.cn 添加到书签栏哦~
  • B站: 疯狂的杨CC
  • 抖音: 疯狂的杨CC
  • 快手: 疯狂的杨CC
  • 91: 疯狂的杨CC
  • p站: 疯狂的杨CC