@Spark7

Как быстро переключать proxy?

Не подскажите софт или расширения для хромоподобных которое могло бы легко менять прокси на следующий из загруженного мной списка в пару кликов?
Все что нашел либо с кучей прописывания путей к каждому серверу, либо неработающие расширения
  • Вопрос задан
  • 465 просмотров
Пригласить эксперта
Ответы на вопрос 2
@zkrvndm
Софт для автоматизации
Создайте папку с именем Proxy, в нём создайте 2 файла.

Содержимое файла manifest.json должно быть таким:
{
	
	"name" : "Proxy",

	"manifest_version" : 2,
	 
	"version" : "1.0",
		
	"description" : "Болванка для создания расширения для смены прокси на лету",
		
	"permissions" : [ "proxy", "webRequest", "webRequestBlocking", "<all_urls>" ],
	
	"background" : { "persistent": true, "scripts": [ "background.js" ] }

}

Содержимое файла background.js должно быть таким:
// Функция для установки произвольного http-прокси:

function setProxy(address, port, login, password) {
	
	if (typeof address == 'undefined' && typeof port == 'undefined') {
		
		chrome.proxy.settings.clear(
			{},
			function() {
				console.log('Настройки прокси успешно удалены');
			}
		);
		
	}
	
	else {
		
		if (typeof login == 'undefined' && typeof password == 'undefined') {
			
			window.auth = undefined;
			
		}
		
		else {
			
			window.auth = Object.create(null);
			window.auth['login'] = login;
			window.auth['password'] = password;
			
		}
		
		chrome.proxy.settings.set(
			{
				value: {
					mode: 'pac_script',
					pacScript: {
						data: 'function FindProxyForURL(url, host) { return "PROXY '+address+':'+port+'";  }'
					}
				},
				scope: 'regular'
			},
			function() {
				console.log('Прокси http://'+address+':'+port+' успешно установлен');
			}
		);
		
	}
	
}

// Автоматиечский ввод логина и пароля, если прокси требует авторизации:

chrome.webRequest.onAuthRequired.addListener(
    function(info, callback) {
        if (info.isProxy && typeof window.auth !== 'undefined') {
			callback({
				authCredentials: {
					username: window.auth['login'],
					password: window.auth['password']
				}
			});
		}
		else {
			callback();
		}
    },
    { urls: [ '<all_urls>' ] },
    [ 'asyncBlocking' ]
);

// Обнуление настроек прокси сразу после установки расширения:

chrome.proxy.settings.clear({}, function() {});

Далее папку Proxy установите в качестве расширения в свой браузер:
Меню -> Дополнительный инструменты -> Расширения ->
Режим разработчика -> Загрузить распакованное расширение


Чтобы поменять прокси в браузере, в консоли фоновой страницы расширения достаточно вызывать функцию setProxy() передав первым параметром адрес прокси, вторым порт, третьим логин, а четвертым пароль. Пример:
setProxy('185.202.3.118', '65233', 'idle', 'dfgfgfgfdd');

Чтобы удалить ранее установленный прокси, достаточно вызывать эту же функцию без параметров. И да, работает только с http-прокси, поддержку socks-прокси я не делал, так как в моем проекте это не было нужно.

Надеюсь вы осознаете, что это просто пример кода для смены прокси в браузере. Разумеется болванку надо переделывать под себя, сделав ему интерфейс, но это уже ваши заботы, бесплатно я это точно не буду делать.
Ответ написан
Комментировать
@zlo1
подними прокси посредник (3proxy)
и укажи его в настройках браузера

а целевой прокси указывай (меняй) в конфигурации 3proxy
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы