Как бы получить листинг файлов на ftp?

Тема в разделе "WASM.NETWORKS", создана пользователем Asterix, 1 окт 2004.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    subj

    много раз сталкиваюсь с этой проблемой,

    TotalCommander кажется не умеет :-(

    Нужно решение чтоб работало под win98

    идеально было б заюзать виндовый ftp.exe
     
  2. plext0r

    plext0r New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    26
    ну а в чем проблема? что мешает заюзать ftp.exe в купе с 'ls' ? 8-)
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Я не знаю как, вернее я когда-то что-то пробовал, но не получилось, может я что делал неправильно или файрвол мешал, не знаю, вот поэтому я жду человека, который подробно расскажет основываясь на собственном опыте что и как делать, применительно к _ftp.exe из 9x
     
  4. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Код (Text):
    1. ftp 10.0.0.25
    2. Connected to 10.0.0.25.
    3. 220 volodya Microsoft FTP Service (Version 5.0).
    4. User (10.0.0.25:(none)): ftp
    5. 331 Anonymous access allowed, send identity (e-mail name) as password.
    6. Password:
    7. 230 Anonymous user logged in.
    8. ftp> ls
    9. 200 PORT command successful.
    10. 150 Opening ASCII mode data connection for file list.
    11. asn
    12. vyacc
    13. 226 Transfer complete.
    14. ftp: 12 bytes received in 0.06Seconds 0.19Kbytes/sec.
    15. ftp>




    Что именно не понятно, чудо ты мое? :)))))
     
  5. plext0r

    plext0r New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    26
    ftp.exe

    >open ftp://ftp.intel.com

    >USER anonymous

    >PASS mail@mail.com

    >ls

    потом нажимаешь верхний левый угол --> Правка --> Выделить --> выделяешь что нужно и копируешь(Enter).

    И в .txt :) Но это все без каталогов(dir) и подкаталогов(сама технология не позволит вроде).



    P.S. жалко, все-таки, что конвейер не работает.. :dntknw:
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Листинг желательно сразу в файл, потому что он предвидется большой :derisive:

    Потом нельзя ли пасс и логин сразу передать в одной строке?



    Вобще-то когда-то mamaich приводил пример как это делать на reng.ru но с "ихними" конфликтами тот топик к сожалению исчез :-(



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

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Asterix



    Ты совсем обленился.

    MSDN:



    To access an FTP server programmatically using WinInet



    Call InternetOpen to initialize an Internet handle.

    InternetOpen creates the root HINTERNET handle that is used to establish the FTP session. The HINTERNET handle is used by all subsequent functions.



    Call InternetConnect to create an FTP session.

    When calling InternetConnect, specify INTERNET_DEFAULT_FTP_PORT for the nServerPort parameter and INTERNET_SERVICE_FTP for the dwService parameter.



    This function uses the handle returned by InternetOpen to create a specific FTP session. InternetConnect initializes an FTP session for the specified site by using the arguments passed to it and creates HINTERNET. This is a branch off of the root handle. In the case of an FTP session, InternetConnect attempts to establish a connection to the specified site.



    Call FtpGetFile or FtpFindFirstFile.

    InternetConnect returns a handle, such as FtpGetFile or FtpFindFirstFile, that subsequent functions can use.



    Use the InternetFindNextFile function with FtpFindFirstFile to find the next file in a file search by using the search parameters and HINTERNET handle from FtpFindFirstFile.



    To complete a file search, continue to call InternetFindNextFile using the HINTERNET handle returned by FtpFindFirstFile until the function fails with the extended error message ERROR_NO_MORE_FILES. To get the extended error data, call the GetLastError function.



    Call InternetCloseHandle to close the FTP session created by calling InternetConnect.

    Call InternetCloseHandle to close the handle created by calling InternetOpen.

    Note Applications must specify a directory relative to the current directory or include the full directory path
     
  8. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    volodya

    Ты предлагаешь попрограммировать, а я рассчитывал на готовое :derisive:

    Нужно будет изучить проблему..

    наверное на какой-нить дельфи это решается в пару десятков кликов мышкой :derisive:
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Кстати, как вам имя юзера на одном из _ftp серверов - ://download@



    гы, проверка на вшивость _ftp клиентов и качалок :)
     
  10. Funbit

    Funbit Member

    Публикаций:
    0
    Регистрация:
    13 апр 2003
    Сообщения:
    92
    Адрес:
    Russia
    Asterix

    и не говори :)



    а на счет пару кликов, а почему так ftp.exe не заюзать? :

    ftp >1.txt

    open

    user

    pass

    ls

    и т.п.
     
  11. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Funbit



    Я уже заюзал, оно и по команде dir выдаёт листинг, но нифига не хочет в файл писать

    ни так

    dir > file.txt

    ни так

    dir >> file.txt

    листинг большой поэтому с экрана в win98 его не снимешь :-(
     
  12. Grevgeny

    Grevgeny New Member

    Публикаций:
    0
    Регистрация:
    9 дек 2003
    Сообщения:
    16
    Адрес:
    Russia
    Ну а описание проги почитать?

    делаешь 1 ftp.bat

    такого вида:

    ftp -n -s:ftpcomman1.txt ftp.ie.tusur.ru



    и 2 файлик ftpcomman1.txt

    примерно такой:

    user anonymous

    skorpion@mail.ru ; это пароль

    ls

    bye



    потом просто делаешь ftp.bat>tt.txt

    в нем и получишь свой список я так загрузку обновленной базы для фокса на работе гружу. А тотал тоже умеет списки делать но как я еще не разбирался нужды не было
     
  13. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Grevgeny

    > Ну а описание проги почитать?



    Где его взять? Встроенная справка самого ftp.exe очень скудна.



    > потом просто делаешь ftp.bat>tt.txt



    Всё хорошо, вот только файл tt.txt всегда получается пустым, если его не указывать то список в консоли получаю.
     
  14. Grevgeny

    Grevgeny New Member

    Публикаций:
    0
    Регистрация:
    9 дек 2003
    Сообщения:
    16
    Адрес:
    Russia
    >Где его взять? Встроенная справка самого ftp.exe очень скудна.

    Но ее хватает.



    >Всё хорошо, вот только файл tt.txt всегда получается пустым, если его не указывать то список в консоли получаю.



    Штранно у меня прекрастно все делается, попробуй поставить пробел перед > ну и после него тоже. Или так ftp.bat >> tt.txt Кст tt.txt это просто название, и обзывать можешь как хочешь. У тебя фтп на 98 винде запускается?
     
  15. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    > попробуй поставить пробел перед > ну и после него тоже.



    Ну естесно я это пробовал..



    > Или так ftp.bat >> tt.txt



    И так пробовал, конечно же..



    > и обзывать можешь как хочешь.



    естно я это знаю :derisive:



    > У тебя фтп на 98 винде запускается?



    Да, запускается и список файлов с сервера получает, но только в консоли, в файл писать никак не хочет, баг какой-то :-(



    А в TotalCommander'е я не нахожу как сделать листинг..
     
  16. Funbit

    Funbit Member

    Публикаций:
    0
    Регистрация:
    13 апр 2003
    Сообщения:
    92
    Адрес:
    Russia
    Asterix

    создай файл getlist.bat со следующим содержанием:

    ftp >1.txt

    (именно таким)



    потом собственно вот:


    Код (Text):
    1.  
    2. C:\>getlist.bat
    3.  
    4. C:\>ftp  1>1.txt
    5. open [url=ftp://ftp.myloveserver.com
    6. ]ftp.myloveserver.com
    7. [/url]
    8. hereusername
    9. Password:
    10. ls
    11. quit
    12.  
    13. C:\>dir 1.txt
    14.  Volume in drive C is XPSYS
    15.  Volume Serial Number is 8BAD-C0DE
    16.  
    17.  Directory of C:\
    18.  
    19. 02.10.2004  13:20             1 684 1.txt
    20.                1 File(s)          1 684 bytes
    21.                0 Dir(s)   8 407 302 144 bytes free
    22.  
    23. C:\>




    в консоль cmd.exe не все будет появляться, просто жди немного после каждой команды, и все будет работать!



    уже написал бы давно программу, которая перехватывала бы все, что выдает консоль :) или для php модуль был где-то, не помню, листинг фтп получал. ну а про перл вообще молчу
     
  17. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Asterix



    ТС все листинги пишет во временные файлы.

    Отслеживай их и все. Я сам всегда их оттуда достаю.

    А про перехват вывода - вот утилита. Она перехватыает

    не только stdout, но и stderr - хотя странно что

    каталог туда выдается....



    [​IMG] _592068715__redir.exe
     
  18. Grevgeny

    Grevgeny New Member

    Публикаций:
    0
    Регистрация:
    9 дек 2003
    Сообщения:
    16
    Адрес:
    Russia
    Странно действительно не делает. Глюк 98, а по тоталу....

    Если 6.03 то выделяешь все и гриш сохранить выделение в файл. Возьми только новое меню.

    [​IMG] 281954685__LANGUAGE.ZIP
     
  19. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Что-то фортуна совсем от меня отвернулась или целевой сервак слишком хитрый, проверьте, please, у кого есть perl и какой-нить ftp на примете следующий скрипт:
    Код (Text):
    1. #!/usr/bin/perl -w
    2.  
    3. use Net::FTP;
    4.  
    5. $hostname = 'ftp.name.com';
    6. $username = 'name';
    7. $password = 'pass';
    8. $home = '/pub';
    9.  
    10.  
    11. $ftp = Net::FTP->new($hostname);
    12. $ftp->login($username, $password);
    13.  
    14. @listing = $ftp->ls($home);
    15. open(OUT, "+>$hostname.txt") or die "Can't open file out.txt for writing: $!";
    16. print OUT << "EOL";
    17. $home
    18. ------------
    19. EOL
    20.  
    21. foreach (@listing)
    22.  {
    23.    print OUT $_;
    24.  }
    25. close(OUT);
    26. $ftp->quit;
     
  20. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Grevgeny

    > Если 6.03 то выделяешь все и гриш сохранить выделение в файл.



    Точно! Работает. Спасибо.



    Вот только не понятно почему не получается другими способами получить этот листинг в файл, ни с помощью ftp.exe, ни с помощью скрипта.. :-(