Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C#] Socks + SSL, Используя socks получить https страничку 
V
    Опции темы
Валерия
Дата 19.6.2012, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: нет
Всего: 8



Необходимо используя socks5 получить страничку, к примеру https://ipcheckit.com/ (обязательно https)
Как это можно сделать?
Нашла класс Org.Mentalis.Network.ProxySocket http://www.mentalis.org/soft/class.qpx?id=9 - работает с сокетами отлично, когда 80 порт.
Но когда пытаюсь подсоединится на 443 порт, выдаёт "Your browser sent a request that this server could not understand" и я не удивлена, ведь https должен быть шифрованный а я шлю просто http запрос:
Код

 ProxySocket s = new ProxySocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        // set the proxy settings
        s.ProxyEndPoint = new IPEndPoint(IPAddress.Parse("124.160.239.233"), 1080);
        s.ProxyUser = "username";
        s.ProxyPass = "password";
        s.ProxyType = ProxyTypes.Socks5;    // if you set this to ProxyTypes.None, 
        // the ProxySocket will act as a normal Socket
        // connect to the remote server
        // (note that the proxy server will resolve the domain name for us)
        s.Connect("ipcheckit.com", 443);
        // send an HTTP request
        s.Send(Encoding.ASCII.GetBytes("GET / HTTP/1.1\r\nHost: ipcheckit.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0\r\n" +
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\nAccept-Encoding: gzip, deflate\r\n" + 
"Connection: keep-alive\r\nCache-Control: max-age=0\r\n\r\n\r\n"));
        // read the HTTP reply
        int recv = 0;
        byte[] buffer = new byte[1024];
        recv = s.Receive(buffer);
        while (recv > 0)
        {
            Console.Write(Encoding.ASCII.GetString(buffer, 0, recv));
            recv = s.Receive(buffer);
        }
        // wait until the user presses enter
        Console.WriteLine("Press enter to continue...");
        Console.ReadLine();
Есть варианты?

Это сообщение отредактировал(а) Валерия - 19.6.2012, 09:35
PM MAIL   Вверх
Валерия
Дата 25.6.2012, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: нет
Всего: 8



Решила проблему использованием библиотеки Chilkat
*Forever Alone*
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1637 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.