![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Proxy & TIdFTP [D6, 2000]
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] приводил), а они ещё более непонятны