白嫖V2Board试用流量
本文最后更新于 2025年4月5日 上午
1. 前言
如果你不想自己搭建机场,又不愿花钱购买,也许你会发现一些 V2Board 机场提供试用流量。这篇文章展示了如何通过 Python 客户端快速实现用户注册、登录和订阅链接的获取操作。这虽方便用户,但机场主们估计会哭笑不得。
2. 主要代码
import requests
import random
import string
import logging
# 设置日志格式和级别
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# 定义 API 服务的基础域名
BASE_URL = "www.laoniu63.top"
class APIClient:
def __init__(self, email=None, password=None):
"""初始化 API 客户端"""
self.base_url = f"https://{BASE_URL}/api/v1"
self.token = None
self.email = email
self.password = password
def make_request(self, method, endpoint, data=None, headers=None):
"""执行 HTTP 请求,并处理错误"""
url = f"{self.base_url}{endpoint}"
try:
response = requests.request(method, url, data=data, headers=headers, timeout=10)
response.raise_for_status() # 若响应出错,抛出异常
return response.json()
except requests.Timeout:
logging.error("请求超时,请检查网络连接。")
except requests.ConnectionError:
logging.error("无法连接服务器,请稍后重试。")
except requests.exceptions.HTTPError as e:
error_msg = e.response.json().get("message", "未知错误")
logging.error(f"HTTP 错误:{error_msg}")
except Exception as e:
logging.error(f"未知错误:{e}")
return None
def register_user(self):
"""注册用户"""
data = {"email": self.email, "password": self.password}
result = self.make_request("POST", "/passport/auth/register", data=data)
if result:
logging.info("注册成功")
else:
logging.error("注册失败")
def authenticate_user(self):
"""用户登录,并获取 Token"""
data = {"email": self.email, "password": self.password}
result = self.make_request("POST", "/passport/auth/login", data=data)
if result:
self.token = result["data"]["auth_data"]
logging.info(f"登录成功,Token: {result['data']['token']}")
else:
logging.error("登录失败")
self.token = None
def get_subscription_link(self, node_id=None):
"""获取用户订阅链接"""
endpoint = "/user/getSubscribe"
if node_id:
endpoint += f"?node_id={node_id}"
headers = {"Authorization": self.token}
result = self.make_request("GET", endpoint, headers=headers)
if result:
return result["data"]["subscribe_url"]
logging.error("获取订阅链接失败,请稍后再试。")
return None
def generate_random_email():
"""生成随机邮箱地址"""
domains = ["gmail.com", "qq.com", "163.com", "yahoo.com",
"sina.com", "126.com", "outlook.com", "yeah.net",
"foxmail.com"]
username = ''.join(random.choice(string.ascii_lowercase) for _ in range(8))
domain = random.choice(domains)
return f"{username}@{domain}"
def generate_random_password():
"""生成随机密码"""
safe_chars = string.ascii_letters + string.digits + "!@#$%^&*"
return ''.join(random.choice(safe_chars) for _ in range(12))
if __name__ == "__main__":
# 初始化客户端,并生成随机账号信息
client = APIClient()
email = generate_random_email()
password = generate_random_password()
logging.info(f"生成的邮箱: {email}")
logging.info(f"生成的密码: {password}")
# 注册并登录
client.email = email
client.password = password
client.register_user()
client.authenticate_user()
# 获取订阅链接
if client.token:
logging.info("正在获取订阅链接...")
subscription_link = client.get_subscription_link()
if subscription_link:
logging.info(f"订阅链接: {subscription_link}")
else:
logging.error("订阅链接获取失败,请稍后再试。")
else:
logging.error("无法获取订阅链接,用户登录失败。")3. 代码结构分析
3.1 全局变量
BASE_URL = "www.laoniu63.top"BASE_URL: 定义 API 服务的主域名。若 API 地址变更,只需修改此处即可。
3.2 APIClient 类
3.2.1. 初始化客户端
class APIClient:
def __init__(self, email=None, password=None):
self.base_url = f"https://{BASE_URL}/api/v1"
self.token = None
self.email = email
self.password = passwordbase_url: 拼接后的 API 路径。token: 存储登录后的授权令牌,用于后续操作。
3.2.2. 用户注册
def register_user(self):
data = {"email": self.email, "password": self.password}
result = self.make_request("POST", "/passport/auth/register", data=data)
if result:
logging.info("注册成功")
else:
logging.error("注册失败")- 描述: 注册一个新用户。
3.2.3. 用户登录
def authenticate_user(self):
data = {"email": self.email, "password": self.password}
result = self.make_request("POST", "/passport/auth/login", data=data)
if result:
self.token = result["data"]["auth_data"]
logging.info(f"登录成功,Token: {result['data']['token']}")
else:
logging.error("登录失败")
self.token = None- 描述: 登录用户,并存储 Token。
3.2.4. 获取订阅链接
def get_subscription_link(self, node_id=None):
endpoint = "/user/getSubscribe"
if node_id:
endpoint += f"?node_id={node_id}"
headers = {"Authorization": self.token}
result = self.make_request("GET", endpoint, headers=headers)
if result:
return result["data"]["subscribe_url"]
logging.error("获取订阅链接失败,请稍后再试。")
return None- 描述: 根据用户的 Token 获取订阅链接。
3.3 工具函数
生成随机邮箱
def generate_random_email():
domains = ["gmail.com", "qq.com", "163.com", "yahoo.com",
"sina.com", "126.com", "outlook.com", "yeah.net",
"foxmail.com"]
username = ''.join(random.choice(string.ascii_lowercase) for _ in range(8))
domain = random.choice(domains)
return f"{username}@{domain}"生成随机密码
def generate_random_password():
safe_chars = string.ascii_letters + string.digits + "!@#$%^&*"
return ''.join(random.choice(safe_chars) for _ in range(12))4. 示例输出
2024-10-13 10:32:39,587 - INFO - 生成的邮箱: cclxojqt@foxmail.com
2024-10-13 10:32:39,588 - INFO - 生成的密码: YFklUussa4&6
2024-10-13 10:32:40,912 - INFO - 注册成功
2024-10-13 10:32:41,997 - INFO - 登录成功,Token: 740418ea561dcc912075ddc355373825
2024-10-13 10:32:41,997 - INFO - 正在获取订阅链接...
2024-10-13 10:32:42,735 - INFO - 订阅链接: https://www.laoniu63.top/api/v1/client/subscribe?token=740418ea561dcc912075ddc3553738255. 注意事项
- API 地址: 如果 API 地址或机场变更,只需调整
BASE_URL即可。 - 依赖: 请确保你已经安装了
requests库,如果没有,请通过pip install requests安装 - 错误处理: 请求失败时会打印详细的错误信息,方便排查问题。
6. 总结
此 Python 客户端可以快速完成 用户注册、登录 及 订阅链接 获取,代码结构清晰,方便开发者扩展与重用。
白嫖V2Board试用流量
https://rollday.site/2024/10/13/白嫖V2Board试用流量/