Подключение к SOCKS5 Proxy через VBscript - PullRequest
0 голосов
/ 26 июня 2018

Я попытался и не смог подключиться к URL-адресу через прокси-сервер SOCKS5, используя приведенный ниже VBscript.

Я получаю ошибку Parameter is Incorrect в строке xmlhttp.setProxyCredentials username, password, хотя учетные данные верны (проверено 5x).

Function GetResult(url As String) As String
    Dim xmlhttp
    Dim ret As String
    Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
    xmlhttp.setProxy 2, proxy
    xmlhttp.Open "GET", url, False
    xmlhttp.setProxyCredentials username, password
    xmlhttp.send
    ret = xmlhttp.responseText
    GetResult = ret
End Function

1 Ответ

0 голосов
/ 13 сентября 2018

ServerXMLHTTP использует WinHTTP на серверной части . Таким образом, вы ограничены прокси, которые поддерживаются WinHTTP , который включает только прокси HTTP и HTTPS, а не SOCKS5.

Вы можете указать прокси в строке, разделенной пробелом. Списки прокси могут содержать номер порта, который используется для доступа к прокси. Чтобы получить список прокси для определенного протокола, строка должна соответствовать формату protocol = http://proxy_name.. Допустимые протоколы: HTTP и HTTPS. Например, для перечисления прокси-сервера HTTP допустимой строкой является http = http://http_proxy_name:80,, где http_proxy_name - это имя прокси-сервера, а 80 - номер порта, который необходимо использовать для доступа к прокси. Если прокси-сервер использует номер порта по умолчанию для этого протокола, вы можете пропустить номер порта. Если имя прокси указано в списке само по себе, вы можете использовать его в качестве прокси по умолчанию для любых протоколов, у которых нет указанного прокси. Например, http = http://http_proxy other_proxy использует http_proxy для любых операций HTTP, а протокол HTTPS использует прокси с именем other_proxy.

Вы можете перечислить локально известные имена хостов или IP-адреса в списке обхода прокси. Этот список может содержать символы подстановки, такие как «*», которые заставляют приложение обходить прокси-сервер для адресов, которые соответствуют указанному шаблону, например, «* .microsoft.com» или «* .org». Подстановочные знаки должны быть самыми левыми символами в списке. Например, «aaa. *» Не поддерживается. Чтобы перечислить несколько адресов и имен хостов, разделите их пробелами или точками с запятой в строке обхода прокси. Если указать макрос, функция обходит любое имя хоста, которое не содержит точку.

Копаем чуть дальше, InternetExplorer / WinINet поддерживает SOCKS4, но не SOCKS4a и не SOCKS5 . В этом посте также упоминается, что SOCKS - это не то, о чем Microsoft слышит от клиентов.

На сегодняшний день мы слышали очень мало отзывов об ограниченной поддержке SOCKS в IE. Большинство пользователей удовлетворены существующей поддержкой CERN-прокси для трафика HTTP / HTTPS / FTP, и для случаев, когда требуется полное проксирование сокетов, вместо этого используется программное обеспечение VPN или RAS. Обратите внимание, что также возможно использовать прокси-сервер типа Fiddler в качестве шлюза / моста для вышестоящего сервера SOCKSv4a. Подробности см. В этой записи StackOverflow .

Термин CERN-proxy - это просто прокси-сервер HTTP, и он обсуждается более подробно в " Инструкции по FTP с прокси-сервером на основе CERN с использованием WinInet API "

...