Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Сети > Прокси на Delphi |
Автор: FAK 11.5.2006, 23:39 |
Как сделать так, чтобы можно было подключаться одновременно к нескольким прокси? Заранее благодарен! |
Автор: Демо 12.5.2006, 09:06 |
Если ты скажешь, что означает "подключиться к нескольким прокси", то возможно тебе и помогут. |
Автор: FAK 12.5.2006, 20:47 |
Объясняю. Это так называемые "цепочка прокси" . Принцип действия таков: Компьютер подключается к прокси1, который подключается к прокси2, прокси2 подключается к прокси3 и тд. Вот это мне и нужно реализовать в делфи |
Автор: Rouse_ 12.5.2006, 22:01 |
Ищи описание механизма Socks в RFC. |
Автор: mai62 12.5.2006, 23:56 | ||
Rouse_
Разве нужен обязательно Socks-прокси? Многие (если не все) HTTP-прокси могут передавать HTTP-запросы вышестоящему (parent) прокси. А если HTTP-прокси поддерживает метод connect, то через него можно работать не только с HTTP-протоколом, но и, например, ICQ или FTP. FAK Из твоих вопросов не понятно в чем заключается задача, которую ты решаешь? Что именно ты хочешь сделать на Delphi? Смотри сколько людей откликнулось, дай им шанс помочь тебе ![]() |
Автор: FAK 13.5.2006, 06:26 |
Я пишу свой icq клиент и мне нужно вставить эту цепочку проксей в мой клиент, чтобы подключаться к icq серверу анонимно. |
Автор: mai62 14.5.2006, 10:44 | ||
Можно посмотреть исходники программы freecap (_http://www.freecap.ru/) Еще видел такой диалог (_http://groups.google.ru/group/borland.public.delphi.internet.winsock/browse_thread/thread/cf01f02031d633ca/6da95be9112090b4?hide_quotes=no#msg_6da95be9112090b4)
Насколько я понял, речь идет об Indy 10 |
Автор: FAK 14.5.2006, 10:58 |
исходник freeCap я уже скачал ) Но чет я там не разберусь |
Автор: RA 14.5.2006, 12:09 |
Собсвенноручно выкладывал тут 3 сорса проксей: http-пэшный на ics-се, http-пэшный без компонентов, и Socks4. Один из сорсов в сетевых технологиях. Такшо в поиск. |
Автор: mai62 17.5.2006, 21:09 | ||
Не могу. Я хотел сказать, что можно строить цепочки и Socks-прокси и HTTP-прокси
|
Автор: Демо 17.5.2006, 22:21 |
Вот эта цепочка интересна, учитывая недоступность администрирования промежуточных звеньев... |
Автор: FAK 18.5.2006, 19:37 | ||
Я уже и исходники фрикапа пересмотрел, все равно не понял. Вот есть код, возможно это путь к разгадке )) но при запуске возникает ряд ошибок.
|
Автор: mai62 20.5.2006, 01:58 | ||
Демо,
http proxy chain - это не мое изобретение (к сожалению ![]() _http://www.freeproxy.ru/en/free_proxy/faq/what_is_http_proxy.htm _http://packages.debian.org/unstable/net/proxychains.html К сожалению не нашел нигде простого описания как это делается. Полагаю происходит это так. Допустим мы хотим пробросить канал от клиента к серверу через цепочку из двух прокси (как я уже писал выше, http прокси должны поддерживать метод connect). Клиент --> Прокси1 --> Прокси2 --> Сервер Клиент устанавливает соединение с Прокси1 и шлет команду connect Прокси2 http1.1 D результате получаем такую цепочку: Клиент --> --------> --> Прокси2 --> Сервер Потом connect Сервер http1.1 Получаем Клиент --> --------> --> --------> --> Сервер На самом деле похожим образом поступает браузер, когда хочет связаться с https-сервером через http-прокси. Он соединяется с http-прокси и шлет команду connect https_сервер:443 http1.1 И после этого обменивается с сервером по https-протоколу. |
Автор: Демо 20.5.2006, 10:41 | ||
Вот в таком варианте сделать возможно и очень просто. Вот в таком -
невозможно. Добавлено @ 10:43 Дело в том, что "Прокси1" как раз и есть наш сервер, которым я могу управлять, на котором могу настроить каскадирование. А вот "Прокси2" - это уже чужой прокси-сервер, и он будет в цепочке последним. |
Автор: mai62 20.5.2006, 21:51 | ||
Демо Допускаю, что я что-то не понимаю, но разницы в этих двух цитатах я не вижу. Не понимаю почему
Почему последним? Теоретически описанным мной способом можно соединить в цепочку сколько угодно проки-серверов (мне так кажется, если я не прав, то в чем?). соединяемся с Прокси1 > connect Прокси2 http1.1 < 200 OK > connect Прокси3 http1.1 < 200 OK > connect Прокси4 http1.1 < 200 OK ... > connect ПроксиN http1.1 < 200 OK ... > connect Вожделенный_Сервер http1.1 |
Автор: Демо 21.5.2006, 11:36 | ||
Теория без практики - это как камасутра в картинках. Протокол HTTP - это вообще-то несколько более сложная вещь, нежели просто Connect. Приведи заголовки HTTP-запросов в каждом случае, чтобы разговор был более предметный. |
Автор: mai62 21.5.2006, 17:54 | ||||
Демо
На практике так на практике, вот
На форму нужно положить Memo и кнопку. Нажмите кнопку и в Memo загрузится текст страницы с mail.ru. Я пробросил канал через 2 http-прокси: 127.0.0.1:8080 192.168.55.2:8080 Можете испытать код с другим количечтвом прокси. |
Автор: Демо 21.5.2006, 18:00 |
mai62, Спасибо. Я уже обнаружил некоторую информацию о такой возможности. Буду изучать. |
Автор: Ibragim 11.9.2006, 14:32 | ||
Ув. mai62, (а может кто-то еще откликнется ![]() не могли бы Вы также рассказать, как сделать работу с TIdTCPClient асинхронной? То есть хотелось бы не ждать ответа на SendCmd, а послать команду, положим
и работать дальше (чтобы процедура не останавливалась), а потом спустя некоторое время посмотреть, есть ли результат, желательно при возникновении какого-либо события. Заранее спасибо. |
Автор: mai62 11.9.2006, 17:53 | ||
TIdTCPClient не может работать в асинхронном режиме. В аснхронном режиме работает, например, Internet Component Suite (http://www.overbyte.be/) |
Автор: Buhalich 14.9.2006, 23:35 |
Ibragim, а с сокетами нет возможности работать? |
Автор: Romikgy 15.9.2006, 09:46 |
засунь в отдельный поток и будет те щастье ![]() есть возможность , но мороки имхо на порядок больше |
Автор: Ibragim 15.9.2006, 12:06 | ||
to Buhalich Есть такая возможность. СОСВСЕМ много мороки. Уже сделано так, как советовал Romikqy:
Вот тока счастья пока нет, поглючивают потоки у меня... пока разбираюсь. |