Прокси-сервер Socks для HttpWebRequest

Согласно моим исследованиям, пытаясь решить проблему this, выясняется, что класс .Net WebProxy не поддерживает прокси-сервер Socks - немного раздражает. Я также не могу найти какой-либо код или информацию, которая объясняет, как реализовать поддержку Socks 4/5 через класс, который может быть легко использован с HttpWebRequest (точнее, свойство Proxy).

Я нашел ограниченную информацию через google о том, как я могу это сделать. Одно предложение включает в себя изменение настроек прокси-сервера Internet Explorer - то, что я бы предпочел не делать.

Кто-нибудь знает что-нибудь, что могло бы сделать работу или какие-либо предложения? Любая помощь будет высоко оценена.

Ответ 1

Я попробовал многочисленные библиотеки .Net, которые утверждали, что поддерживают Socks4/5, но обнаружили, что многие из них просто не работают или будут пытаться подключиться к прокси, которые, как я знал, функционировали.

Я закончил использование компонента Chickk Software Sock/SSL, который, кажется, работает хорошо для меня, даже если мне нужно вручную создать HTTP-запросы вместо использования HttpWebRequest, как мне бы хотелось.

  • Замечание по обновлению: Chilkat.Http(аналогично классу HttpWebRequest) по своей сути поддерживает прокси SOCKS. Поэтому не тратьте время на то, чтобы запрограммировать свои собственные HTTP-запросы, как и я; просто используйте свойства Chilkat.Http.SocksHostname, Chilkat.Http.SocksPort и Chilkat.Http.SocksVersion.

Ответ 2

Изменение настроек прокси-сервера IE совсем не поможет - другой плакат просто наблюдал, что он работает для IE. Поскольку .NET Framework не поддерживает SOCKS, вам нужно написать собственный CERN-Proxy для SOCKS-Proxy-конвертера, чтобы .NET говорил с прокси-сервером CERN (тип, который он поддерживает), и ваш код преобразует его в Прокси-сервер SOCKS.

FWIW, это то, что я сейчас хочу добавить в FiddlerCore (www.fiddler2.com/core), потому что у меня уже есть почти весь код. Единственное, что мне действительно нужно, это прокси-сервер SOCKSv4a для тестирования.

Ответ 3

Используйте Privoxy или же, чтобы создать HTTP-прокси-шлюз для ваших носков.

Добавьте это в главную конфигурацию в цепочку Privoxy и носки:

forward-socks5 / proxy_host:port .

И что-то вроде этого, чтобы обеспечить прямой доступ к вашей локальной сети:

forward 192.168.*.*/ . forward 10.*.*.*/ . forward 127.*.*.*/ .