2010-04-14 5 views
7

пытаясь понять http и заголовки, я играл с telnet для отправки запросов. чтобы не вводить все снова и снова, я снова подумал, что напишу небольшой текстовый файл со всеми необходимыми мне командами.как подать файл в telnet

мой файл так же просто следующим образом:

GET /somefile.php HTTP/1.1 
Host: localhost 

я затем попытаться кормить его телнет с IO-перенаправлением:

$ telnet localhost 80 < telnet.txt 

, но все выходные я получаю

Trying ::1... 
Connected to localhost. 
Escape character is '^]'. 
Connection closed by foreign host. 

что я делаю неправильно?

+1

Пересмотр этого вопроса через 7 лет, я думаю, что проблема с предлагаемыми решениями с netcat были проблемами CRLF/LF с файлом. Протокол HTTP требует использования терминаторов линии CRLF и не будет работать только с LF. – knittl

ответ

5

telnet не подходит для этой работы. Попробуйте:

Netcat 80 < локальный telnet.txt

Кстати, если вы не установили инструмент на вашей машине, вы можете получить его здесь:

http://netcat.sourceforge.net/

+0

как я могу получить выход обратно? Мне нужен ответ http/html. – knittl

+0

Ответ будет показан только на главной строке командной строки. – chetan

+0

он делает, когда я ввожу запрос на stdin, но при выполнении 'nc knittl

0

Я не знаю, возможно ли это с telnet. Вы посмотрели netcat?

4

Проблема заключается в том, что вы немедленно загружаете все данные в команду telnet, не дожидаясь выхода. После того, как весь ваш входной файл будет подан, он автоматически заставит telnet «повесить трубку», поскольку входной поток достигнет конца (EOF). Telnet все еще может быть в первой миллисекунде или микросекунде, ожидая, когда это произойдет, чтобы установить соединение с удаленным сервером. Что вы хотите сделать, отправьте команду telnet, а затем дождитесь, пока она выполнит свою работу, а затем дождитесь ответа сервера, затем отправьте следующую команду и т. Д. И только повесьте трубку в самый конец, когда все команды, которые вы отправили, были фактически обработаны. Для этого используйте сценарий «ожидать» вместо инсталляции текстового файла. «Ожидание» - это обычный инструмент для выполнения этой работы.

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

  • Нет связанных вопросов^_^