Прокси-сервер 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.*.*.*/ .