Полноценное использование служебного Инета

Xakep, номер #039, стр. 039-056-2


Вернемся теперь к двум ftp-серверам, между которыми нужно передать файл. Если один из них перевести в пассивный режим (он сообщит адрес и порт), а другой - в активный (указав только что полученные от первого сервера адрес и порт), то между ними установится соединение и можно будет передать файл.

Ничего не понял? ОК, поехали подробно.

Прежде всего следует приконнектиться к обоим серверам (используя любой telnet) и залогиниться, используя команды USER и PASS, например:

USER ivanov

PASS qwerty

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

Затем следует командой "TYPE I" указать, что ты собираешься передавать файл как бинарные данные. Далее надо ввести команды PASV или PORT, которые переведут сервер в пассивный или активный режим соответственно.

Переведем один из серверов в пассивный режим:

PASV

227 Entering passive mode (213,180,190,56,222,116)

(Первая строка - это введенная команда, вторая - ответ сервера.)

А другой - в активный, используя полученные только что адрес и порт (213.180.190.56:56948, где номер порта есть 222 * 256 + 116):

PORT 213,180,190,56,222,116

200 PORT command OK

Режим, адрес и порт, устанавливаемые этими командами, не меняются до тех пор, пока одна из них не будет вызвана снова.

Далее, команда "CWD <путь к файлу>" изменит текущую директорию (при этом, чтобы не заблудится, можно использовать команду PWD, которая возвращает текущий каталог). Однако дело осложняется тем, что команда, возвращающая список файлов в текущей директории (команда "LIST") передает результат в соединение данных, и увидеть его не так просто. Поэтому надо сначала каким-либо способом выяснить точный путь к файлу, который нужно скачать, например, "/pub/R/Robert_Miles/mp3/fable.mp3", и тогда останется выполнить на сервере только одну команду: "CWD /pub/R/Robert_Miles/mp3".

Наконец команды отправки и приема файла: "RETR <имя файла>" и "STOR <имя файла>". И корректный выход: "QUIT".

Назад на стр. 039-056-1  Содержание  Вперед на стр. 039-056-3