2010-04-14 8 views
7

próbuje zrozumieć http i nagłówki, w których używałem telnetu do wysyłania żądań. żeby nie pisać wszystkiego raz po raz myślałem, że napiszę mały plik tekstowy z wszystkimi potrzebnymi komendami.jak przekazać plik do telnetu

mój plik jest tak proste, jak następuje:

GET /somefile.php HTTP/1.1 
Host: localhost 

i spróbuj go karmić do telnet z io-przekierowanie:

$ telnet localhost 80 < telnet.txt 

ale wszystkie wyjścia i dostać to

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

co robię źle?

+1

Powracając do tego pytania po 7 latach, myślę, że problemem z proponowanymi rozwiązaniami z netcat były problemy CRLF/LF z plikiem. Protokół HTTP wymaga użycia terminatorów linii CRLF i nie będzie działał tylko z LF. – knittl

Odpowiedz

5

Telnet nie jest właściwym narzędziem do tej pracy. Spróbuj:

netcat localhost 80 < telnet.txt

btw, jeśli nie zostały narzędzia zainstalowane na komputerze, można dostać go tutaj:

http://netcat.sourceforge.net/

+0

Jak mogę odzyskać dane wyjściowe? Potrzebuję odpowiedzi http/html – knittl

+0

Odpowiedź pojawi się na stdout linii poleceń. – chetan

+0

ma to miejsce, gdy wpisuję żądanie na stdin, ale gdy robię 'nc knittl

0

Nie wiem, czy to możliwe z telnet. Czy spojrzałeś na netcat?

4

problemu jest to, że natychmiast przekazujesz wszystkie dane wejściowe do polecenia telnet, nie czekając na jego wyjście. Zaraz po tym, jak podany zostanie plik wejściowy, telnet automatycznie "zawiesi się", ponieważ strumień wejściowy osiąga koniec (EOF). Telnet może nadal znajdować się w swojej pierwszej milisekundy lub mikrosekundzie oczekiwania na nawiązanie połączenia ze zdalnym serwerem, gdy tak się stanie. To, co chcesz zrobić, to wysłać polecenie do telnetu, a następnie poczekać, aż wykona swoje zadanie, poczekać na odpowiedź serwera, następnie wysłać następne polecenie i tak dalej, i odłożyć tylko na samym końcu, gdy wszystkie komendy wysłane zostały przetworzone. Aby to zrobić, użyj skryptu "oczekiwać" zamiast insta-karmienia pliku tekstowego. "Oczekiwanie" jest zwykłym narzędziem do wykonania tej pracy.

Powiązane problemy