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

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

posted @ 2021-10-15 11:25  了不起的奥特曼  阅读(850)  评论(0编辑  收藏  举报