Windows神器:告别IP限制,IP自动切换软件(附源码)

科技   2024-08-08 08:08   上海  
下载地址:

附源码和EXE文件

夸克链接:https://pan.quark.cn/s/9be6bb03e7f7

(PS:点击阅读原文也可跳转)

百度链接: 

https://pan.baidu.com/s/1Ph4g-Ln2a4FDD2ZCEQCFgQ?pwd=tqdj 

提取码:tqdj 

Python源码:

源码解析:

导入模块

import requests
import json
import os
import subprocess
import time
import sys
import logging
import tkinter as tk
from tkinter import scrolledtext
from threading import Thread, Event
这部分代码导入了程序所需的所有Python模块。例如,requests用于发起网络请求,logging用于日志记录,tkinter用于构建图形用户界面等。

设置输出编码

# 设置输出编码为 UTF-8
这行注释说明了代码应该设置输出编码为UTF-8,但在实际代码中并没有设置。通常这会通过添加sys.stdout.reconfigure(encoding='utf-8')来实现。

自定义日志处理器

class ScrolledTextHandler(logging.Handler):
    # ...
ScrolledTextHandler类是自定义的日志处理器,它将日志信息输出到Tkinter的文本框中。这允许GUI显示日志信息。

通用函数递归提取代理信息

def extract_proxy_info(data):
    # ...
extract_proxy_info函数用于从API返回的数据中递归提取代理的IP地址、端口和地址信息。它定义了可能包含这些信息的键,并使用递归函数recursive_extract来搜索这些键。

从API获取代理IP和端口

def get_proxy(api_url):
    # ...
get_proxy函数通过向API发送GET请求来获取代理信息,然后调用extract_proxy_info来解析这些信息。

配置HTTP代理

def set_http_proxy(ip, port):
    # ...
set_http_proxy函数设置了环境变量HTTP_PROXYHTTPS_PROXY,这样程序就可以通过指定的HTTP代理进行网络请求。

关闭HTTP代理

def disable_http_proxy():
    # ...
disable_http_proxy函数清除了HTTP_PROXYHTTPS_PROXY环境变量,从而禁用了HTTP代理。

设置Windows全局代理

def set_windows_proxy(ip, port):
    # ...
set_windows_proxy函数通过修改Windows注册表来设置全局代理,这样所有通过Windows系统进行的网络请求都会使用这个代理。

关闭Windows全局代理

def disable_windows_proxy():
    # ...
disable_windows_proxy函数通过修改注册表来禁用全局代理。

访问百度并检查HTTP状态码

def check_baidu():
    # ...
check_baidu函数尝试访问百度,检查HTTP状态码是否为200,以验证代理是否有效。

运行代理的循环逻辑

def run_proxy(api_url, stop_event, switch_interval):
    # ...
run_proxy函数包含了代理切换的循环逻辑。它在一个循环中定期获取新的代理,并根据stop_event的信号来停止代理切换。

图形界面类

class App:
    # ...
App类定义了应用程序的GUI组件和逻辑。它初始化GUI元素,定义了启动和停止代理的按钮,并处理相关的事件。

主函数

if __name__ == "__main__":
    # ...
程序的入口点,创建Tkinter的主窗口,实例化App类,并启动GUI的主事件循环。

释然IT杂谈
本公众号专注于分享网络工程(思科、华为),系统运维(Linux)、以及安全等方面学习资源,以及相关技术文章、学习视频和学习书籍等。期待您的加入~~~关注回复“724”可领取免费学习资料(含有书籍)。
 最新文章