玩青龙面板可以配置代{过}{滤}理,研究了一下,第一次玩代{过}{滤}理。刚发现要更新代{过}{滤}理白名单的时候,感觉玩不下去了,因为我是家庭宽带搭建的服务器,虽然有公网IP但是是变法的。
看到白名单管理接口,发现是HTTP,然后就简单的写了个python脚本get一下。
核心函数
[Python] 纯文本查看 复制代码 def get_ip_info():
# 当前代{过}{滤}理白名单
dl_ip = requests.get('换自己的链接,获取白名单链接').text.strip()
# 当前公网ip
gw_ip = requests.get('https://ipv4.icanhazip.com').text.strip()
return gw_ip, dl_ip
def ch_ip_info(gw_ip, dl_ip):
if dl_ip != gw_ip:
print('当前公网ip:', gw_ip, '代{过}{滤}理白名单ip:', dl_ip)
requests.get('换自己的链接,删除所有白名单链接')
requests.get('换自己的链接,添加白名单链接' + gw_ip)
return 0
else:
return 1
加载青龙面板通知完整代码
[Python] 纯文本查看 复制代码 import requests
import os,sys
def get_ip_info():
# 当前代{过}{滤}理白名单
dl_ip = requests.get('换自己的链接,获取白名单链接').text.strip()
# 当前公网ip
gw_ip = requests.get('https://ipv4.icanhazip.com').text.strip()
return gw_ip, dl_ip
def ch_ip_info(gw_ip, dl_ip):
if dl_ip != gw_ip:
print('当前公网ip:', gw_ip, '代{过}{滤}理白名单ip:', dl_ip)
requests.get('换自己的链接,删除所有白名单链接')
requests.get('换自己的链接,添加白名单链接' + gw_ip)
return 0
else:
return 1
def load_send():
global send
cur_path = os.path.abspath(os.path.dirname(__file__))
sys.path.append(cur_path)
if os.path.exists(cur_path + "/notify.py"):
try:
from notify import send
except:
send = False
print("加载通知服务失败~")
else:
send = False
print("加载通知服务失败~")
msgs=''
for i in range(5):
try:
response = requests.get('ddns域名')
if response.status_code == 200:
print('访问ddns域名成功,状态码:', response.status_code)
msgs += f'第{i+1}次,访问ddns域名成功,状态码:{response.status_code}\n'
break
except requests.RequestException as e:
print('触发ddns异常:', e)
msgs += f'第{i+1}次,触发ddns异常: {e}\n'
keygo = 0
for i in range(5):
try:
gw_ip, dl_ip = get_ip_info()
except requests.RequestException as e:
print('获取IP信息失败:', e)
keygo = 1
msgs += f'\n\n获取IP信息失败: {e}\n'
break
try:
get_key = ch_ip_info(gw_ip, dl_ip)
if get_key == 1:
if i == 0:
print('当前公网ip未变更:')
print('当前公网ip:', gw_ip, '代{过}{滤}理白名单ip:', dl_ip)
msgs +=f'\n\nIP未变更,直接访问地址http://{gw_ip}:6002\n'
break
else:
print("这是第", i + 1, "次循环")
print('更新成功:')
print('当前公网ip:', gw_ip, '代{过}{滤}理白名单ip:', dl_ip)
msgs +=f'\n\n更新IP成功,直接访问地址http://{gw_ip}:6002\n'
load_send()
send('代{过}{滤}理IP白名单提交',msgs)
break
except requests.RequestException as e:
print("这是第", i + 1, "次循环")
print('更新代{过}{滤}理白名单IP信息失败:', e)
msgs += f'\n\n第{i+1}次,更新代{过}{滤}理白名单IP信息失败: {e}\n'
load_send()
send('代{过}{滤}理IP白名单提交',msgs)
|