ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Python 实现windows下自动切换代理IP

2021-10-15 11:36:32  阅读:189  来源: 互联网

标签:__ winreg Python IP 代理 windows KEY hKey ProxyEnable


https://blog.csdn.net/fengleitao/article/details/81913538

 

简介:利用python实现windows下“打开代理”和“关闭代理”切换

原理:通过修改注册表 "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" 下的子项,能够设置IE代理,然后通过代理可以上网或做其它事情。基于该原理通过python脚本调用winreg模块来访问和操作注册表,达到自动切换代理的目的

import winreg

#########################################################################
KEY_ProxyEnable = "ProxyEnable"
KEY_ProxyServer = "ProxyServer"
KEY_ProxyOverride = "ProxyOverride"
KEY_XPATH = "Software\Microsoft\Windows\CurrentVersion\Internet Settings"
#########################################################################

'''
设置代理
enable: 0关闭,1开启
proxyIp: 代理服务器ip及端口,如 "192.168.70.127:808"
IgnoreIp:忽略代理的ip或网址,如 "172.*;192.*;"
'''
def SetProxy(enable, proxyIp, IgnoreIp):
hKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, KEY_XPATH, 0, winreg.KEY_WRITE)
winreg.SetValueEx(hKey, KEY_ProxyEnable, 0, winreg.REG_DWORD, enable)
winreg.SetValueEx(hKey, KEY_ProxyServer, 0, winreg.REG_SZ, proxyIp)
winreg.SetValueEx(hKey, KEY_ProxyOverride, 0, winreg.REG_SZ, IgnoreIp)
winreg.CloseKey(hKey)

# 获取当前代理状态
def GetProxyStatus():
hKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, KEY_XPATH, 0, winreg.KEY_READ)
retVal = winreg.QueryValueEx(hKey, KEY_ProxyEnable)
winreg.CloseKey(hKey)
return retVal[0]==1

def main():
if GetProxyStatus():
SetProxy(0, "", "")
print("关闭代理")
else:
SetProxy(1, "192.168.70.127:808", "172.*;192.*;")
print("打开代理")

if __name__ == '__main__':
main()

————————————————
版权声明:本文为CSDN博主「fengleitao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fengleitao/article/details/81913538

标签:__,winreg,Python,IP,代理,windows,KEY,hKey,ProxyEnable
来源: https://www.cnblogs.com/auschwitzer/p/15410273.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有