Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Proxy & TIdFTP [D6, 2000]


Страницы:   1 2

workbench ©   (2008-09-29 09:35:00) 

Здравстуйте. У меня компонент TIdFTP c proxy работать отказывается (без proxy работает), вот здесь:

http://www.indyproject.org/KB/index.html?tidftpsocksproxy.htm

нашёл возможное решение, приведу что там написано:

"For Indy 9.0

1. Create an IOHandler such as TIdIOHandlerSocket or TIdSSLIOHandlerSocket and assign the TIdFTP.IOHandler property this.  

2. Set the TIdFTP.Passive property to true.

3. Create a TIdSocksInfo object and assign it to the IOHandler's SocksInfo property.

4. Set the TIdSocksInfo properties as required. "

Сделал всё как написано, однако всё равно не работает, до того как это попробовал вылетала ошибка 10065 "No route to host", а после так это написал попытка соединения (FTP.Connect(true, timeout)) просто слетает по таймауту(((

Подскажите, плз, что не так делаю (как заюзать proxy "в связке" c TIdFTP)?


Сергей М.   (2008-10-01 08:13:00) [1]


> тот самый о котором речь шла в самом начале


А [33] я для кого писал, для Пушкина ?)

И уж если ты привел лог целевого прокси, то почему всего один ?


Anatoly Podgoretsky   (2008-09-30 19:24:00) [2]


> Ты про какой прокси говоришь, про свой собственный локальный
> ?

Уже давно ничего не понятно, впрочем и в начале тоже.


workbench   (2008-09-30 17:48:00) [3]

да, тот самый о котором речь шла в самом начале


Сергей М.   (2008-09-30 17:37:00) [4]


> в loge этого самого proxy


Ты про какой прокси говоришь, про свой собственный локальный ?


workbench   (2008-09-30 17:34:00) [5]

Уфф... eрунда какая-то выходит, если делать запрос на закачку файла с ftp, то в loge этого самого proxy на запрос со своего ip я вижу:

1222772132.301    329 192.168.0.209 TCP_MISS/200 45601 GET ftp://ezakaz@farmk.nnov.ru/price/303/price.dat- DIRECT/212.92.130.154 text/plain

...и больше ничего, а запросов когда я юзаю TIdFTP или ICS я не вижу вообще (может они просто в log не попали)

В инете не нашёл ничего путного про работу TC-FTP, пробовал вот ещё один FTP - FileZilla FTP Client, он тож чёт не пашет через proxy... 2 дня сижу, а решения нет(((


Сергей М.   (2008-09-30 13:21:00) [6]


> проясниться немного


Зато фрагменты рез-тов протоколирования ты сможешь выставить сюда на публичное обозрение/анализ/рекомендации


workbench   (2008-09-30 13:05:00) [7]


> многое сразу прояснится


судя по тому сколько мне понятно из вашего поста, даже если сделаю - проясниться немного)))

впрочем, щас попробую какие-нить логи с этого злосчастного proxy выцепить...


Сергей М.   (2008-09-30 13:00:00) [8]

Попробуй организовать любой локальный прокси, который выполнял бы тривиальный портмаппинг и протоколировал бы инф.обмен между клиентами и целевым прокси-сервером.

Настрой ТС и своего клиента на этот лок.прокси, а целевой прокси укажи для локального как внешний каскадируемый.

Сравни результаты протоколирования - многое сразу прояснится.


workbench   (2008-09-30 12:44:00) [9]


> Сергей М.


строго следуя инструкции с indyproject, ошибок при установке никаких не вылетало

ICS тоже пробовал... и с ним не получается

Если бы не Total со своим работающим ftp-клиентом то подумал бы на "местные" проблемы с сетью, а так даже уже и не знаю, вариантов других уже просто не вижу(((


Сергей М.   (2008-09-30 12:25:00) [10]


> Вот поставил Indy10


А ты поставил его как положено, без отсебячины ?


workbench   (2008-09-30 12:20:00) [11]


> Anatoly Podgoretsky


?


> Сергей М.


Вот поставил Indy10

Создал новый appl, на форме только компонент TIdFTP, вот его св-ва:
 ProxySettings.Host = 192.168.0.254 (наш proxy)
 ProxySettings.Port = 8080 (порт proxy)
 ProxySettings.ProxyType = fpcmHttpProxyWithFtp (да и остальные пробовал)
 Passive = true

пишу:
 try
    idFTP.Connect
 except
    showmessage('conn err')
 end

"Замирает" на idFTP.Connect, т.е. опять-таки не хочет коннектиться через proxy(((


Anatoly Podgoretsky   (2008-09-30 11:33:00) [12]


> при использовании TIdFTP всё необходимое я получал посредством
> вызова что ни говори удобных функций Indy,

Дурдом, срочно за учебник по Паскалю, что бы узнать, что такое процедуры и функции.


Сергей М.   (2008-09-30 08:22:00) [13]


> workbench   (29.09.08 17:56) [27]


Можешь попытать еще ftp-клиента в составе пакета ICS - он тоже поддерживает работу через http- и socks4/5-прокси.


workbench   (2008-09-29 17:56:00) [14]

Ок, наконец то получилось "законнектится" к ftp через proxy и скачать оттуда файлик, получилось следующее:

hSession :=InternetOpen(nil, INTERNET_OPEN_TYPE_PROXY,
                                 '192.168.0.254:8080', nil, 0);
if hSession <> nil then
 begin
 hConnect :=InternetOpenUrl(hInet,
   PChar(' ftp://login:pswd@farmk.nnov.ru/price/303/price.dat'),nil,0,0,0);
 if hConnect <> nil then
   begin
   InternetReadFile(hConnect, @Buffer, SizeOf(Buffer), BytesCountRead);
   FileStr :=string(buffer);
   memo.Lines.Add(FileStr);
   memo.Lines.SaveToFile('...');
   end;
 end;

Однако возникла другая проблема - при использовании TIdFTP всё необходимое я получал посредством вызова что ни говори удобных функций Indy, здесь же необходимо вручную "выкорчёвывать" (парсить) нужную инфу из строки (я ещё не брался, но чувствую это будет полная ж...).

И вот собсно вопрос: не горожу ли я таким способом "огород" (я имею ввиду такой способ получения файлов с ftp), а если нет: может у кого-нить есть парсер на это дело или знает где взять? Подскажите, плиз...


Сергей М.   (2008-09-29 14:09:00) [15]


> WinInet такой возможностью работы с FTP обладает?

http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_20693225.html


workbench   (2008-09-29 13:17:00) [16]

Угу, спасибо за ссылки, вот типа краткое резюме:

"ftp over http proxy, который принимает запросы посредством
протокола http, преобразует их в команды ftp протокола, получает с удаленного ftp сервера файл и отдает его клиенту по http, производя при этом необходимые преобразования.

Достоинством подобного подхода является то, что работа с ftp серверами через proxy осуществляется абсолютно также, как и с http серверами. Главный недостаток очевиден - использовать здесь обычный ftp клиент невозможно."

Вот... а дальше как у Герцена: "Что делать?". 10-ю Indy юзать? А WinInet такой возможностью работы с FTP обладает? Посоветуйте, плиз, как быть, что лучше использовать?


workbench   (2008-09-29 13:02:00) [17]

Так а др клиенты как тогда работают, например вот в TotallComander`е есть FTP-клиент, пишу адресс\порт + Тип подключения: Http-proxy with FTP support... и всё прекрасно работает: подключение, закачка; ощущение такое что истина где-то вот рядом прям(((


brother   (2008-09-29 12:46:00) [18]

> > локальный (SQUID)

любой squid не работает с чужим ftp...


Сергей М.   (2008-09-29 12:43:00) [19]


> локальный (SQUID)


http://www.google.ru/search?complete=1&hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=4nt&q=SQUID+ftp+proxy&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq=


workbench   (2008-09-29 12:26:00) [20]

ок, допустим даже если Indy отпадает, надо искать чем заменить, например, WinInet, но с ним тоже есть проблемы (я в [14] приводил), а они ещё более непонятны


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо