Python修改Windows系统代理

我们知道在Windows系统下,在设置里可以配置网络代理,那可不可以通过程序自动化修改呢?

答案是可以!Python语言就可以!

Python是通过winreg标准库修改注册表达到修改Windows系统代理的目的。

直接上代码:

import winreg

"""
修改系统代理函数
:param open_or_close: 是否开启 bool
:param host: IP
:param port: 端口
:return:
"""
def system_proxy(open_or_close, host, port):

    proxy = f"{host}:{port}"
    root = winreg.HKEY_CURRENT_USER
    proxy_path = r"Software\Microsoft\Windows\CurrentVersion\Internet Settings"
    kv_Enable = [
        (proxy_path, "ProxyEnable", 1, winreg.REG_DWORD),
        (proxy_path, "ProxyServer", proxy, winreg.REG_SZ),
    ]

    kv_Disable = [
        (proxy_path, "ProxyEnable", 0, winreg.REG_DWORD),
        # (proxy_path, "ProxyServer", proxy, winreg.REG_SZ),
    ]
    if open_or_close:
        kv = kv_Enable
    else:
        kv = kv_Disable
    for keypath, value_name, value, value_type in kv:
        hKey = winreg.CreateKey(root, keypath)
        winreg.SetValueEx(hKey, value_name, 0, value_type, value)

if __name__ == '__main__':
    system_proxy(True, "127.0.0.1", 1087)

第一个参数传True表示开启代理,传False则是关闭代理,第二三个参数为代理的IP和端口。

Leave a Comment

豫ICP备19001387号-1