Как автоматически запустить ftp без флага -s? - PullRequest
0 голосов
/ 22 мая 2018

Я работаю с аппаратным обеспечением, которое мне нужно для автоматического извлечения файлов, на котором установлена ​​очень элементарная версия программы ftp.Это сводится к тому, что я не могу запустить ftp, используя флаг -s и файл с командами ftp.Однако, если я использую те же самые команды в том же порядке из cmd (таким образом теряя необходимую автоматизацию), я могу получить нужные мне файлы.Я ищу любое решение, которое может существовать, так как я уже пробовал немало вариантов.

Что я уже пробовал:

  • ftp -s: filename.txt;ответ сервера - команда не реализована

  • Встроенная в Matlab библиотека ftp;та же проблема, что и у ftp -s

  • библиотека ftp Python;та же проблема

  • запуск ftp из telnet;невозможно даже подключить

  • запуск ftp из процесса cmd в c #;Невозможно записать ввод в программу ftp после ее запуска (возможно, здесь я могу пропустить, потому что раньше никогда не использовал c #)

Любой совет приветствуется.Я работаю в Windows 7, если это актуально.

** содержимое файла filename.txt **

open <192.168.100.220>


get Disk00
quit

** вывод команды run -s **

ftp -s:filename.txt
open 192.168.100.220
Connected to 192.168.100.220
220 Service Ready
User <192.168.100.220:>none>>:
331 User OK, Need Password

230 User Logged In
ftp> get Disk00
202 [2,16] Command Not Implemented
150 Opening Data Connection

На этом этапе процесс просто зависаети я должен Ctrl + C из этого.Выпущенная команда, которая, по-видимому, «не реализована» в программном обеспечении ftp, с которым я работаю, является необработанной командой PORT.

Изображение cmd при запуске строка за строкой

Disk00 находится в каталоге по умолчанию.Я почти уверен, что проблема, с которой я сталкиваюсь, является врожденной проблемой того, как хакерская версия ftp, которую я имею на этом аппаратном обеспечении, интерпретирует или в этом случае неправильно интерпретирует команды, отправленные из командного файла, который я использую.Вывод неудачной команды PORT при запуске из пакетного файла показывает, что каким-то образом она неправильно индексирует команду.От Wireshark:

Request: PORT 192,168,100,100,230,70
Response: 202 [2,16] Command Not Implemented

Вот почему мой первоначальный вопрос больше состоит в том, как я могу реализовать обходной путь для этого, чтобы избежать любого странного поведения, которое делает эта версия кода ftp.

**ОБНОВЛЕНИЕ **

При тестировании случайных комбинаций команд в файле, который я передаю ftp с флагом -s, я исправил свою проблему, вызвав PORT перед использованием команды get ... Одна из команд PORTпо-прежнему не удается, поэтому я не совсем уверен, почему это работает, но я не собираюсь ставить это под сомнение ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...