Python 實現windows下自動切換代理IP
阿新 • • 發佈:2019-02-18
簡介:利用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()