当前位置: 首页 > news >正文

【Python】定时更换clashx工具


An empty street
An empty house
A hole inside my heart
I’m all alone
The rooms are getting smaller
I wonder how
I wonder why
I wonder where they are
The days we had
The songs we sang together
Oh yeah
And oh, my love
I’m holding on forever
Reaching for a love that seems so far
                     🎵 Westlife《My Love》


import requestsimport time
from loguru import logger# LOCAL_IP = "127.0.0.1"  # 本地IP地址,根据实际情况修改
LOCAL_IP = "233.233.233.233"  # 远程IP地址,根据实际情况修改CLASH_API_URL_TEST = f"http://{LOCAL_IP}:9089"  # Clash的API地址,根据实际情况修改
CLASH_API_URL_ONLINE = f"http://{LOCAL_IP}:9090"  # Clash的API地址,根据实际情况修改URL_TEST = f"{CLASH_API_URL_TEST}/proxies/Proxy"
URL_ONLINE = f"{CLASH_API_URL_ONLINE}/proxies/Proxy"SWITCH_INTERVAL = 7  # 切换间隔时间,单位为秒PROXY_TEST = {"http": f"http://{LOCAL_IP}:7776", "https": f"http://{LOCAL_IP}:7776"}
PROXY_ONLINE = {"http": f"http://{LOCAL_IP}:7777", "https": f"http://{LOCAL_IP}:7777"}def switch_proxy_test():group_status = requests.get(URL_TEST).json()now = group_status["now"]all_proxies = group_status["all"]next_index = (all_proxies.index(now) + 1) % len(all_proxies)next_proxy = all_proxies[next_index]data = {"name": next_proxy}response = requests.put(URL_TEST, json=data)if response.status_code == 204:logger.info(f"Test:Successfully switched to next proxy: {next_proxy}")return next_proxyelse:logger.info("Test:Failed to switch proxy")return Falsedef check_proxy(check_url,proxy,remark=""):resp = requests.get(check_url, proxies=proxy)if resp.status_code == 200:logger.info(f"{remark}:Proxy is available: {resp.json()['origin']}")return Trueelse:logger.info(f"{remark}:Proxy is unavailable: {resp.status_code}")return False
def switch_proxy_online(next_proxy):data = {"name": next_proxy}response = requests.put(URL_ONLINE, json=data)if response.status_code == 204:logger.info(f"Online:Successfully switched to next proxy: {next_proxy}")return Trueelse:logger.info("Online:Failed to switch proxy")return Falseif __name__ == "__main__":check_url = "http://httpbin.org/ip"for _ in range(10):logger.info(f"SWITCH_INTERVAL:{SWITCH_INTERVAL}")if next_proxy:=switch_proxy_test():if is_ok := check_proxy(check_url,PROXY_TEST,"Test"):if switch_proxy_online(next_proxy):check_proxy(check_url,PROXY_ONLINE,"Online")time.sleep(SWITCH_INTERVAL)

相关文章:

【Python】定时更换clashx工具

An empty street An empty house A hole inside my heart I’m all alone The rooms are getting smaller I wonder how I wonder why I wonder where they are The days we had The songs we sang together Oh yeah And oh, my love I’m holding on forever Reaching for a l…...

2024年第16届大广赛新命题发布-爱华仕箱包

2024年3月27日,2024年第16届大广赛发布了新的命题,爱华仕箱包命题,自2017年起,爱华仕箱包已连续8年担任全国大学生广告艺术大赛命题单位。 爱华仕现已实现百货、超市、电商、礼品、投标、海外市场6大零售网络的全覆盖&#xff0c…...

前端理论总结(js)——闭包和内存泄漏

闭包 什么是闭包? 函数内部和函数外部连接起来的桥梁,可以在一个内层函数中访问到其外层函数的作用域 为什么要用 封装变量 收敛权限 临时变量持久化 优点 1.保护函数内的变量安全      2.在内存中维持一个变量(用的太多就变成了缺点&#xff0c…...

PHP页面如何实现设置独立访问密码

PHP网页如果需要查看信息必须输入密码,验证后才可显示出内容的代码如何实现? 对某些php页面设置单独的访问密码,如果密码不正确则无法查看内容,相当于对页面进行了一个加密。 如何实现这个效果,详细教程可以参考:PHP页面如何实现…...

M1 mac安装 Parallels Desktop 18 激活

M1 mac安装 Parallels Desktop 18 激活 下载安装Parallels Desktop 18.1.1 (53328) 激活1. 拷贝prl_disp_service2. 在终端打开Crack所在位置3. 输入命令,激活成功 下载 安装包和激活文件下载地址 链接: https://pan.baidu.com/s/1EjT7xeEDcntIIoOvvhBDfg?pwd9pue …...

嵌入式学习46——硬件相关2串口通信

串口: 端口: COM 波特率: 9600 115200 (bps) 每秒传输的数据…...

企业产品网络安全建设日志3月20

今天主要以下几个事情 确定了OCI当前情况下,更新某安全配置会导致链接中断 这问题说大不大,说小不小。 由此引申出各云服务器产品的完善度: AWS>OCI>其他 国内一些安全公司提供的WAF功能,缺点在于其全球的…...

BRICK POP展示了有趣的链上游戏玩法与奖励

新游戏BRICK POP将Sui区块链技术与低Gas费用,以及我们在Web3游戏开发方面的专业知识无缝结合。通过充分利用Sui和我们自己的INNO平台的优势,BRICK POP为玩家提供了一个融合了前沿技术和引人入胜游戏的沉浸式游戏体验。BRICK POP游戏设计为实时交易和高用…...

jetcache 2级缓存模式实现批量清除

需求 希望能够实现清理指定对象缓存的方法,例如缓存了User表,当User表巨大时,通过id全量去清理不现实,耗费资源也巨大。因此需要能够支持清理指定本地和远程缓存的批量方法。 分析 查看jetcache生成的cache接口,并没…...

【MD】激光驱动原子动力学的全尺寸从头算模拟

Zeng Q, Chen B, Zhang S, et al. Full-scale ab initio simulations of laser-driven atomistic dynamics[J]. npj Computational Materials, 2023, 9(1): 213.核心研究内容: 本文研究了激光驱动的原子动力学的全尺度从头算模拟。研究的重点是探讨在极端条件下材料…...

访问者模式(数据与行为解耦)

目录 前言 UML plantuml 类图 实战代码 SimpleFileVisitor FileVisitor 接口 删除指定文件夹 模板 IVisitor IVisitable Client 前言 一个类由成员变量和方法组成,成员变量即是类的数据结构,方法则是类的行为。 如果一个类的数据结构稳定&am…...

LeetCode:1319. 连通网络的操作次数(并查集 Java)

目录 1319. 连通网络的操作次数 题目描述: 实现代码与解析: 并查集 原理思路: 1319. 连通网络的操作次数 题目描述: 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示…...

C++ STL教程

C STL教程 文章目录 C STL教程1.1 std::vector1.1.1vector的定义1.1.2vector容器的初始化1.1.3vector容器内元素的访问和修改1.1.4vector中的常用函数 1.2 std::string1.2.1string的定义1.2.2string的初始化1.2.3string中元素的访问和修改1.2.4string中连接字符串1.2.5string中…...

系列学习前端之第 6 章:一文掌握 jQuery(熟悉即可)

前言:为什么说 jQuery 熟悉即可,已日渐过时? 作为前端开发中常用的两个库或框架:Vue.js 和 jQuery。不少开发者想要学习 Vue.js 时,都会有一个疑惑:学习 Vue.js 是否一定要学习 jQuery? 从几个…...

python 中判断文件、目录是否存在的方法

判断目录是否存在并创建目录 一、实现上传文件功能二、判断目录是否存在的办法2.1、使用os模块2.1.1、判断目录是否存在2.1.2、os.makedirs():递归创建目录 2.2、使用pathlib模块2.2.1、path.exist()判断目录是否存在2.2.1、path.mkdir():创建目录 2.3、…...

Redis的安装与启动

一、Linux环境安装&启动Redis 1. 安装步骤 第一步:在官网下载好Redis安装包,上传到Linux中并进行解压到相应(如/opt/software/)目录中;(注意:完成了第二步后,即安装了C/C语言…...

WebGIS航线编辑器(无人机航线规划)

无人机航点、航线规划,实现全自动航点飞行作业及飞行航拍。禁飞区、作业区功能保障飞行安全。 GIS引擎加载 const viewer new Cesium.Viewer("cesiumContainer", { imageryProvider: new Cesium.IonImageryProvider({ assetId: 3872 }), }); const im…...

STEP 格式三维模型读取

STEP是常用的三维模型存储格式&#xff0c;使用Express语言描述几何图形&#xff0c;文件存储方式为BRep&#xff0c;分为STEP203和STEP214&#xff0c;后者多了颜色信息&#xff0c;opencascade中提供了相应算法读取STEP文件。 #include <STEPControl_Reader.hxx>TopoD…...

Mora: Enabling Generalist Video Generation via A Multi-Agent Framework

目录 论文地址&#xff1a;Mora: Enabling Generalist Video Generation viaA Multi-Agent Framework github地址&#xff1a;https://github.com/lichao-sun/Mora 一、摘要 &#xff08;1&#xff09;Mora 的主要特点&#xff1a; &#xff08;2&#xff09;Mora的应用场景…...

[c++] 自写 MyString 类

实现了 MyString 类&#xff0c;同时实现了运算符重载&#xff0c;重载的运算符包括 <、>、、!、<<、>>、[] 等。 如果一个类重载了某个运算符&#xff0c;那么对这个类的对象进行操作的时候便会使用类重载的运算符。比如下边代码 MyString 类中重载了 <、…...

对比按次计费Taotoken的TokenPlan套餐为长期项目带来的成本变化

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比按次计费与Taotoken的TokenPlan套餐为长期项目带来的成本变化 在持续运营的AI项目中&#xff0c;成本的可预测性与可控性是团队…...

Java学习笔记——DAY3

目录 1、Java方法 2、方法的定义 3、方法调用 4、方法的重载 5、命令行传参 6、可变参数 7、递归 1、Java方法 Java方法是语句的集合&#xff0c;它们在一块执行一个功能。 方法是解决一类问题的步骤的有序集合方法包含与类或对象中方法在程序中被创建&#xff0c;在其…...

3步快速掌握AKShare:零基础获取金融数据的完整指南

3步快速掌握AKShare&#xff1a;零基础获取金融数据的完整指南 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirrors/aks/aksha…...

3分钟快速上手:R3nzSkin国服换肤神器完全指南

3分钟快速上手&#xff1a;R3nzSkin国服换肤神器完全指南 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 还在为英雄联盟国服皮肤价格昂贵而烦恼吗&…...

无需复杂代理快速为你的项目接入GPT4与Claude等多模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 无需复杂代理快速为你的项目接入GPT4与Claude等多模型 基础教程类&#xff0c;面向希望在一个项目中灵活调用不同厂商大模型的开发…...

Nginx慢速HTTP攻击防护:超时配置与内核级加固实战

1. 这不是误报&#xff1a;当Nginx日志里反复出现“client timed out”时&#xff0c;你面对的已是真实攻击面“检测到目标主机可能存在缓慢的HTTP拒绝服务攻击”——这条告警在安全扫描报告里出现时&#xff0c;很多运维同学第一反应是&#xff1a;又一个误报。毕竟Nginx跑得稳…...

Unity半透明模型单面显示问题的四大解决方案

1. 这个问题到底在烦谁&#xff1f;——从美术交接现场说起Unity里模型导入后“只有一面能看见&#xff0c;翻过去就变透明”&#xff0c;这事儿我见过太多次了。不是程序员写错了Shader&#xff0c;也不是美术导出时漏了法线&#xff0c;而是Unity默认的Front Face Culling&am…...

CyberChef:网络安全工程师的终极数据处理瑞士军刀

CyberChef&#xff1a;网络安全工程师的终极数据处理瑞士军刀 【免费下载链接】CyberChef The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis 项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef 你是否曾遇到…...

如何用SPT-AKI存档编辑器5分钟内定制你的塔科夫体验:新手终极指南

如何用SPT-AKI存档编辑器5分钟内定制你的塔科夫体验&#xff1a;新手终极指南 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/g…...

华硕笔记本终极控制神器:G-Helper轻量化替代方案完整指南

华硕笔记本终极控制神器&#xff1a;G-Helper轻量化替代方案完整指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook,…...