Проблема с ftp командой size

Тема в разделе "WASM.NETWORKS", создана пользователем liosha, 28 окт 2010.

  1. liosha

    liosha New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2010
    Сообщения:
    2
    Всем привет.
    Может кто из Вас подскажет. Начал писать ftp сервер под windows. Пока на шарпе, как прототип. Потом перепишу на С++.
    Застрял на команде SIZE. Вот лог:

    Код (Text):
    1. (4:02:44) >> USER anonymous
    2. (4:02:44) << 331 Please specify the password
    3. (4:02:44) >> PASS e-mail
    4. (4:02:44) << 230 Login successful. Have fun.
    5. (4:02:44) >> SYST
    6. (4:02:44) << 210 Windows 7 x64
    7. (4:02:44) >> PWD
    8. (4:02:44) << 257 "/" is working directory.
    9. (4:02:44) >> TYPE I
    10. (4:02:44) << 200 Type set to I
    11. (4:02:44) >> EPSV
    12. (4:02:46) << 540 Command not supported!
    13. (4:02:46) >> PASV
    14. (4:02:46) << 227 Entering Passive Mode (127, 0, 0, 1, 7, 208)
    15. (4:02:46) >> SIZE /
    16. (4:02:47) << 540 Command not supported!
    17. (4:02:47) >> QUIT
    18. (4:02:47) << 221 Goodbye.
    Как я вычитал в гугле, команда SIZE должна быть с последующим именем файла,
    размер которого и нужно отправить в ответ. А тут непонятно. Размер сервера что-ли спрашивает.
    Или текущей директории.
    Все это при попытке подключиться к ftp через google chrome.
    Проводник такой команды не отправляет.
    Скачал Titan Ftp Server, чтоб посмотреть пример по логам.
    Вот что он сказал:

    Код (Text):
    1. COMMAND: USER anonymous
    2. RESPONSE: 331 User name okay, need password.
    3. COMMAND: PASS
    4. RESPONSE: 230-Welcome anonymous from 192.168.0.172. You are now logged in to the server.230 User logged in, proceed.
    5. COMMAND: SYST
    6. RESPONSE: 215 UNIX Type: L8
    7. COMMAND: PWD
    8. RESPONSE: 257 "/" is current directory.
    9. COMMAND: TYPE I
    10. RESPONSE: 200 Type set to I.
    11. COMMAND: EPSV
    12. RESPONSE: 229 Entering Extended Passive Mode (|||62506|)
    13. COMMAND: SIZE /
    14. Insufficient rights to "D:\ServerName\"; returning 550
    15. RESPONSE: 550 Requested action not taken, file not found or no access.
    16. COMMAND: CWD /
    17. RESPONSE: 250 Directory changed to "/"
    18. COMMAND: MLSD
    19. RESPONSE: 150 File status okay; about to open data connection.
    20. Success.
    21. FindFirstFile returned 0x008c8328. GetLastError = Область данных, переданная по системному вызову, слишком мала.
    22. RESPONSE: 226 Closing data connection. Transferred 149 bytes.
    23. COMMAND: QUIT
    24. RESPONSE: 221 Session Ended. Downloaded 0KB, Uploaded 0KB. Goodbye anonymous from 192.168.0.172.
    25. Closed connection from IP address: 192.168.0.172, port: 62505
    При этом в google chrome не отображается ни одного файла.
    Выходит Титан такой команды тоже не знает...
     
  2. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    берешь wireshark, конектишься на рабочий фтп, и смотришь что отправляется в ответ, сравниваешь с тем что отправляешь ты, делаешь выводы=)
     
  3. liosha

    liosha New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2010
    Сообщения:
    2
    Так и сделал.

    Лог обращения google chrome к серверу ftp://212.46.12.210/

    Код (Text):
    1. >> USER anonymous
    2. << 331 Password required for anonymous.
    3. >> PASS chrome@example.com
    4. << 230-========================================================
    5. >> SYST
    6. << 215 KsineD FTP se server v.2.0.33
    7. >> PWD
    8. << 257 "/" is current directory.
    9. >> TYPE I
    10. << 200 Type set to I.
    11. >> EPSV
    12. << 229 Entering Extended Passive Mode (|||12007|)
    13. >> SIZE /
    14. << 550 No such file.
    15. >> CWD /
    16. << 250 CWD command successful. "/" is current directory.
    17. >> MLSD
    18. << 150 Data connection accepted from 77.239.162.91:30443; transfer starting.
    При этом файлы в браузере отобразились.
    Сделал изменения в своем проекте, заработало.
    Выходит если ответить
    Код (Text):
    1. 540 Command not supported!
    Ошибка - команда не определена
    То он отказывается работать со мной.
    А если ответить
    Код (Text):
    1. 550 No such file.
    Ошибка - команда относится к файловой системе
    Он продолжает работать. Странно.

    Хотя что он подразумевал под этой командой так и не понятно.
    Ну да ладно, работает. Спасибо за помощь.