试图了解我正在玩telnet发送请求的http和标题。不要一次又一次地输入所有内容我以为我会写一个包含我需要的所有命令的小文本文件。
我的文件简单如下:
GET /somefile.php HTTP/1.1
Host: localhost
然后我尝试使用io-redirection将其提供给telnet:
$ telnet localhost 80 < telnet.txt
但我得到的所有输出都是
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
我做错了什么?
答案 0 :(得分:11)
telnet不适合这项工作。试试:
netcat localhost 80&lt; telnet.txt
不过,如果您没有在您的机器上安装该工具,那么 可以在这里得到它:答案 1 :(得分:7)
问题是您立即将所有输入提供给telnet命令,而不等待其输出。在所有输入文件被送入之后,它将自动使telnet“挂断”,因为输入流到达其末尾(EOF)。当发生这种情况时,Telnet可能仍处于实际等待与远程服务器建立连接的第一毫秒或微秒。 你想要做的是,向telnet发送一个命令,然后等待它完成它的工作,即等待服务器的响应,然后发送下一个命令,依此类推,只在所有命令结束时挂断你发送的是实际处理的。 要执行此操作,请使用“expect”脚本而不是insta-feeding文本文件。 “期待”是完成这项工作的常用工具。
答案 2 :(得分:0)
我不知道telnet
是否可行。你看过netcat
吗?
答案 3 :(得分:0)
上面的建议非常好,除了telnet的端口号是23,而不是80。因此,如果您是来这里寻找如何将数据馈入telnet端口的(就像我所做的那样,以配置以太网控制的电源开关),请使用端口23。