2012-05-30 2 views
7

Да, я знаю, ftp лучше, чем telnet, но сейчас я застрял в telnet. Я уже могу войти и т. Д. Это просто, что я не могу получить файл. Я гугл для него, и он дал мне это:с помощью telnet для передачи файла с/на сервер

(от: http://www.webdigi.co.uk/blog/2009/ftp-using-raw-commands-and-telnet/)

220 ProFTPD 1.3.1 Server (ProFTPD) [64.170.98.33] 
USER anonymous 
331 Anonymous login ok, send complete email address as your password 
PASS [email protected] 
230 Anonymous access granted, restrictions apply 
CWD ietf/ftpext/ 
250 CWD command successful 
PASV 
227 Entering Passive Mode (64,170,98,33,151,31). 
RETR ftpext-charter.txt 
150 Opening ASCII mode data connection for ftpext-charter.txt (6060 bytes) 
226 Transfer complete 
QUIT 
221 Goodbye. 

Теперь, как вы можете видеть, здесь человек, используемый RETR для получения файла. Однако, когда я это делаю, он просто выполняет его .. и .. ничего не делает. Он просто остается там. Кто-нибудь знает, как справиться с этим?

Спасибо!

Редактировать: Прямо сейчас я пытаюсь все исправить, используя telnet на моем компьютере с Windows, потому что я застрял с моим скриптом. Я пытаюсь написать сценарий на своем сервере, который просто (автоматически) извлекает несколько файлов с другого сервера (используя netsock) в «фоновом режиме», ежедневно ... и без взаимодействия с кем-либо.

screenie из RETR:

screenshot

+2

Это делается FTP. Не telnet. – adarshr

+1

Если вы хотите отправлять файлы через telnet, вы можете (не нравится, но это сеанс FTP, на который вы смотрите), но вам нужно будет сделать это с помощью некоторых каналов и перенаправления ввода-вывода. На мой взгляд, это не вопрос программирования. И вам будет намного лучше использовать ssh/scp для него, чем telnet. – Flexo

+0

А что у тебя получается? У вас есть скриншот, включая вашу telnet-команду? –

ответ

5

Вы не можете использовать Ftp с Telnet. Для Ftp требуется командный канал и канал данных. Вы можете использовать командный канал с Telnet, но вы не можете использовать канал данных с Telnet. Результат - то, что вы видите. Более подробная информация приведена в документе Ftp RFC: http://www.ietf.org/rfc/rfc959.txt

+0

Если вы используете пассивный режим, вы можете использовать канал данных на другом telnet. –

+0

Да, чтобы прочитать содержимое двоичного файла в терминале telnet. Единственным полезным способом захвата содержимого канала данных является использование netcat: 'nc -n -l -p dataport> download'. Но вместо установки netcat было бы очень легко использовать * wget *, * curl *, * lftp * или старый добрый клиент * ftp *. – ceving

6

Если система, на которую вы подключаете telnet-интерфейс, имеет на ней Python (большинство систем на базе Unix имеют установленную по умолчанию версию Python), вы можете запускать ультра- простой HTTP-сервер Python, используя эту команду:

$ python -m SimpleHTTPServer 

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

http://192.168.2.1:8000/ 

(просто заменить IP-адрес с фактическим адресом удаленной машины) , Это загрузит список файлов в браузере, и вы можете щелкнуть правой кнопкой мыши и сохранить любой файл, который вы хотите.

Надеюсь, это поможет!

+0

Спасибо Иордании. Я только что отредактировал свой первоначальный вопрос, чтобы уточнить мою ситуацию: я хочу автоматизировать передачу файлов, поэтому каждый день (например) он мог бы вытащить определенный файл с другого сервера. Поэтому я не хочу открывать веб-браузер или что-то еще .. все должно происходить в фоновом режиме в основном. – Malachi

+1

Просто хочу добавить, что в Python 3 это python -m http.server – pugnator

Смежные вопросы