Windows хранит свой общесистемный прокси в реестре, посмотрите в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
. Вы можете использовать модуль Python _winreg, чтобы изменить его (или просто winreg, если вы используете Python 3). Вот пример кода
import _winreg as winreg
INTERNET_SETTINGS = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
r'Software\Microsoft\Windows\CurrentVersion\Internet Settings',
0, winreg.KEY_ALL_ACCESS)
def set_key(name, value):
_, reg_type = winreg.QueryValueEx(INTERNET_SETTINGS, name)
winreg.SetValueEx(INTERNET_SETTINGS, name, 0, reg_type, value)
set_key('ProxyEnable', 1)
set_key('ProxyOverride', u'*.local;<local>') # Bypass the proxy for localhost
set_key('ProxyServer', u'X.X.X.X:8080')
Чтобы отключить его, вам просто нужно установить ключ ProxyEnable в 0:
set_key('ProxyEnable', 0)
После запуска скрипта в браузерах по-прежнему будут храниться старые прокси-серверы в памяти, поэтому вам необходимо перезапустить их, чтобы они могли перечитать новые настройки прокси из реестра. Я нахожу это очень раздражающим, поэтому я преобразовал этот фрагмент в Python.
import ctypes
INTERNET_OPTION_REFRESH = 37
INTERNET_OPTION_SETTINGS_CHANGED = 39
internet_set_option = ctypes.windll.Wininet.InternetSetOptionW
internet_set_option(0, self.INTERNET_OPTION_REFRESH, 0, 0)
internet_set_option(0, self.INTERNET_OPTION_SETTINGS_CHANGED, 0, 0)
Это обновляет настройки Windows, поэтому все, что вам нужно сделать, это нажать F5 в вашем браузере, чтобы получить новые настройки прокси.
Я написал небольшой скрипт для включения или выключения моего прокси, источник в Bitbucket:
https://bitbucket.org/canassa/switch-proxy
Это должно работать с любым браузером, использующим общесистемный прокси-сервер Windows (например, Chrome, IE). Некоторые браузеры, такие как Firefox, используют внутренние настройки прокси. Если вы хотите изменить их, вам нужно будет выяснить, где они хранят свои настройки, и написать код для их изменения.