mirror of
https://github.com/3288588344/toulu.git
synced 2025-12-16 15:00:14 +08:00
Add files via upload
This commit is contained in:
126
51加白.py
Normal file
126
51加白.py
Normal file
@@ -0,0 +1,126 @@
|
||||
#把需要添加白名单的账号AppKey填到环境变量BMD51中就行,多账号&分割
|
||||
#入口:https://www.51daili.com/index/user/promotion/parent_id/20685/code/nlEAxeqD.html
|
||||
|
||||
import os
|
||||
import requests
|
||||
import time
|
||||
|
||||
|
||||
def get_proclamation():
|
||||
primary_url = "https://github.com/3288588344/toulu/raw/refs/heads/main/tl.txt"
|
||||
backup_url = "https://tfapi.cn/TL/tl.json"
|
||||
|
||||
try:
|
||||
response = requests.get(primary_url, timeout=10)
|
||||
if response.status_code == 200:
|
||||
print("📢 公告信息")
|
||||
print("=" * 45)
|
||||
print(response.text)
|
||||
print("=" * 45 + "\n")
|
||||
print("公告获取成功,开始执行任务...\n")
|
||||
return
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"获取公告时发生错误: {e}, 尝试备用链接...")
|
||||
|
||||
try:
|
||||
response = requests.get(backup_url, timeout=10)
|
||||
if response.status_code == 200:
|
||||
print("\n" + "=" * 14)
|
||||
print("📢 公告信息")
|
||||
print("=" * 45)
|
||||
print(response.text)
|
||||
print("=" * 45 + "\n")
|
||||
print("公告获取成功,开始执行任务...\n")
|
||||
else:
|
||||
print(f"⚠️ 获取公告失败,状态码: {response.status_code}")
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"⚠️ 获取公告时发生错误: {e}, 可能是网络问题或链接无效。")
|
||||
|
||||
class WhiteListManager:
|
||||
def __init__(self, appkey):
|
||||
self.appkey = appkey
|
||||
self.white_base_url = "http://bapi.51daili.com/white-ip/"
|
||||
self.user_base_url = "http://aapi.51daili.com/userapi"
|
||||
|
||||
def add_white_ip(self, ips, isdel=1):
|
||||
"""
|
||||
添加白名单
|
||||
:param ips: 要添加的IP,多个IP用英文逗号隔开
|
||||
:param isdel: 0(超出不删除),1(超出删除最先开始添加的)
|
||||
:return: 返回请求结果
|
||||
"""
|
||||
url = f"{self.white_base_url}add?appkey={self.appkey}&isdel={isdel}&ips={ips}"
|
||||
response = requests.get(url)
|
||||
return response.json()
|
||||
|
||||
def get_user_info(self):
|
||||
"""
|
||||
获取用户信息
|
||||
:return: 返回请求结果
|
||||
"""
|
||||
url = f"{self.user_base_url}?appkey={self.appkey}"
|
||||
response = requests.get(url)
|
||||
return response.json()
|
||||
|
||||
def get_white_ip(self):
|
||||
|
||||
try:
|
||||
response = requests.get("https://httpbin.org/ip")
|
||||
ip_data = response.json()
|
||||
return ip_data.get("origin", "")
|
||||
except Exception as e:
|
||||
print(f"从外部接口获取IP失败: {e}")
|
||||
return ""
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
get_proclamation()
|
||||
|
||||
print(f"开始执行... ")
|
||||
|
||||
# 从环境变量获取多个账号的APPkey,多个账号用&分隔
|
||||
appkeys = os.environ.get("BMD51", "").split("&")
|
||||
|
||||
if not appkeys or appkeys == [""]:
|
||||
print("环境变量51BMD未设置或格式不正确")
|
||||
else:
|
||||
# 获取白名单IP
|
||||
white_ip = WhiteListManager("").get_white_ip()
|
||||
if white_ip:
|
||||
print(f"获取的IP: {white_ip}")
|
||||
print("正在处理多个账号...")
|
||||
for appkey in appkeys:
|
||||
if appkey.strip() == "":
|
||||
continue
|
||||
manager = WhiteListManager(appkey.strip())
|
||||
|
||||
# 获取用户信息
|
||||
user_info = manager.get_user_info()
|
||||
if user_info.get("code") != 0:
|
||||
print(f"获取用户信息失败,跳过该账号")
|
||||
continue
|
||||
|
||||
# 提取用户名
|
||||
username = user_info.get("data", {}).get("userName", "未知用户名")
|
||||
print(f"账号 {username} - 开始添加白名单IP {white_ip} 到白名单")
|
||||
|
||||
# 添加白名单IP到白名单
|
||||
result = manager.add_white_ip(white_ip)
|
||||
msg = result.get("msg", "")
|
||||
code = result.get("code", -1)
|
||||
|
||||
if code == 0:
|
||||
print(f"账号 {username} - 白名单IP {white_ip} 添加成功: {msg}")
|
||||
elif code == 1:
|
||||
print(f"账号 {username} - 白名单IP {white_ip} 已存在: {msg}")
|
||||
else:
|
||||
print(f"账号 {username} - 添加白名单IP失败: {msg}")
|
||||
|
||||
# 为了防止请求过快,添加适当的延迟
|
||||
time.sleep(1)
|
||||
else:
|
||||
print("无法获取IP")
|
||||
|
||||
|
||||
print(f"执行结束... ")
|
||||
Reference in New Issue
Block a user