【Python】读取windows代理信息
一、代理信息
【Windows修改代理注册表位置】
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
【这个表下面有三个值】
- ProxyEnable:表示当前电脑是否开启了代理?1:开启、0:关闭
- ProxyServer:代理服务器的IP和端口
- ProxyOverride:不代理的ip,一般是本地
【注意】
如果电脑从未使用过代理工具,从未设置过代理,则不会有ProxyEnable这个key的
二、API文档
https://docs.python.org/zh-cn/3/library/winreg.html
三、代码实现
# coding=utf-8 import winreg # 处理代理服务器 class ProxyServer: def __init__(self): self.__path = r'Software\Microsoft\Windows\CurrentVersion\Internet Settings' self.__INTERNET_SETTINGS = winreg.OpenKeyEx(winreg.HKEY_CURRENT_USER, self.__path, 0, winreg.KEY_ALL_ACCESS) def get_server_form_Win(self): """获取代理配置的ip和端口号""" ip, port = "", "" if self.is_open_proxy_form_Win(): try: ip, port = winreg.QueryValueEx(self.__INTERNET_SETTINGS, "ProxyServer")[0].split(":") print("获取到代理信息:{}:{}".format(ip, port)) except FileNotFoundError as err: print("没有找到代理信息:" + str(err)) except Exception as err: print("有其他报错:" + str(err)) else: print("系统没有开启代理") return ip, port def is_open_proxy_form_Win(self): """判断是否开启了代理""" try: if winreg.QueryValueEx(self.__INTERNET_SETTINGS, "ProxyEnable")[0] == 1: return True except FileNotFoundError as err: print("没有找到代理信息:" + str(err)) except Exception as err: print("有其他报错:" + str(err)) return False if __name__ == '__main__': ps = ProxyServer() print(ps.get_server_form_Win()) print(ps.is_open_proxy_form_Win())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)