информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСтрашный баг в WindowsСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Блокировка российских аккаунтов... 
 Отзыв сертификатов ЦБ РФ, ПСБ,... 
 Памятка мирным людям во время информационной... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Под вендой? 25.08.09 20:06  Число просмотров: 931
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 25.08.09 20:35  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
> Мне известно два вида прокси: SOCKS и HTTP Proxy, один из
> них я даже реализовывал собственноручно и использовал его
> на локальной машине. Но то, как пользоватся услугами
> стороннего PROXY понять не могу.
Предположим, ты пишешь браузер.
Без прокси что делаем?
1) Создаём объект обычного сокета;
2) командуем ему делать коннект к удалённому веб-серверу. Имя в IP резольвится у нас локально, всей кухней с DNS занимается венда.
3) пишем в сокет HTTP заголовки, сокет отсылает их веб-серверу напрямую;
4) получаем ответ сервера, рендерим страницу.

С HTTP поркси что делаем?
1) Создаём объект обычного сокета;
2) Даём ему команду подключиться к HTTP прокси;
3) пишем в сокет HTTP заголовки, прокси их получает и дальше сам шлёт куда надо, имя в IP резольвит прокси, нам не нужен DNS;
4) получаем ответ прокси, рендерим страницу.

С SOCKS прокси что делаем?
1) Создаём объект проксированного сокета, который умеет общаться c SOCKS-прокси по протоколу SOCKS4 или SOCKS5.
2) даём команду объекту сокета приконнектиктся к удалённому серверу. Прокси сам резольвит имена, нам не нужен DNS.
3) Пишем в сокет HTTP заголовки, сокет на своём нижнем уровне пересылает двоичный поток прокси, прокси шлёт их дальше;
4) сокет получаем ответ прокси, выкусывает бинарный контент в соотв. с протоколам, отдаёт твоей проге, прога рендерит страницу.
Где взять классы проксированных сокетов? Не знаю, я не плюсист.

> Вот я пишу программу (на C++), которая взаимодействует с
> Интернетом через сокеты. Без Прокси механизм работы с
> сокетами мне понятен, а вот с прокси труба. Выручайте.
Если твоя программа взаимодействует не просто по TCP, а по протоколу HTTP, тогда ей подойдут HTTP прокси, HTTP сам по себе легко проксируется, потому что не содержит информации о состоянии, и может пересылаться от прокси к прокси, к серверам, от них к проксям и тебе обратно ;-)

> Да, и ещё вопрос в догонку: есть ли какая-то принципиальная
> разница в программировании доступа через прокси для SOCKS и
> HTTP Proxy, или с точки зрения меня, как пользователя
> прокси, это программирование будет одинаковым?
Даа... SOCKS4 и SOCKS5 кури двоичные протоколы.
У них есть состояние, дексрипторы, идентификаторы комманд и проч.
Но они прикольны тем, что:
1) Бинарные, т.е. работают на уровне TCP, а не HTTP.
2) Программа может открыть сокет на прокси, который будет слушать на определённом порту (если он там не занят), и перенаправлять к тебе запросы на подключение.

Такие, пироги.
Я в своё время писал софтину, которая должна была брать инфу по протоколу HTTP, тупо используя настройки, вбитые в IE.
И вот, для этого чудесно подошёл COM-объект, который прекрасно знают все, кто юзал AJAX, и называется он Microsoft.XMLHTTP, с его методами и событиями. Всё хорошо в том плане, что он юзает настройки прокси, вбитые в IE6, и всю работу делает сам.

Ну а ещё можешь погонять функции из виндовой стандартной либы WinInet.dll, информацию по её функциям ищи в MSDN. Она тоже много чего может, и с прокси может взаимодействовать сама, юзая или что в IE, или сам можешь указать их конфигурацию.

Удачи.
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2022 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach