Задать вопрос
@demon1806

Как передать код страны через SOCKS4?

Я пишу расширение для VPN, в нём необходимо передать код страны через SOCKS4 на локальный прокси. Как можно это грамотно сделать ?

Вот основной файл, если что, чтобы было понятнее:

// prettier-ignore
$(document).ready(function() {
    loadData();
    $("#search").click(search);
    $("#clear").click(clear);

    function loadData() {
        chrome.storage.sync.get(["ip", "port", "countryId", "proxies"], function(result) {
            if (result.ip && result.port) {
                $("#cur_proxy").empty().append("<p>Proxy set - " + result.ip + ":" + result.port + "</p>");
            } else {
                $("#cur_proxy").empty().append("<p>Proxy not used<p>");
            }

            $("#country_id").val(result.countryId || null);

            showProxies(result.proxies || null);
        });
    }

    function search() {
        const countryId = $("#country_id").val();
        if (countryId === "select") {
            alert("Select a country");
            return;
        }


            const proxies = [];
                let ip = "127.0.0.1";
                let port = "1080";
                proxies.push(ip + ":" + port);

            showProxies(proxies);

            chrome.storage.sync.set({countryId: countryId, proxies: proxies}, null);
    }

    function showProxies(proxies) {
        $(proxies).each(function(i, proxy) {
            $("#new_proxy").append('<a class="proxylist" href=#>' + proxy + "</a></br>");
        });
        $(".proxylist").on("click", function() {
            const ip = "127.0.0.1";
            const port = "1080";
            setProxy(ip, port);
        });
    }

    function setProxy(ip, port) {
        const config = {
            mode: "fixed_servers",
            rules: {
                singleProxy: {
                    host: "127.0.0.1",
                    port: port
                }
            }
        };
        chrome.proxy.settings.set({ value: config, scope: "regular" }, null);
        chrome.storage.sync.set({ip: ip, port: port}, loadData);
    }

    function clear() {
        const config = {
            mode: "direct"
        };
        chrome.proxy.settings.set({ value: config, scope: "regular" }, null);
        chrome.storage.sync.clear(loadData);
    }
});
  • Вопрос задан
  • 167 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
ValdikSS
@ValdikSS
В протоколе Socks нет понятия кода страны. Можете каким-то образом закодировать его в логине или пароле аутентификации, а на стороне прокси-сервера раскодировать и применять разную логику.

В браузерах нет поддержки VPN. Socks — протокол прокси, значит, вы пишете расширение для прокси.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы