Linux脚本telnet HEAD请求

标签 linux bash telnet

<分区>

所以基本上我正在尝试做一些相当简单的事情;我正在尝试制作一个脚本以远程登录到 Microsoft 服务器并请求页面的 HEAD。但不出所料,它不起作用。如果我只是将它手动输入到控制台中,它就可以工作,但是在执行脚本时根本不起作用。

这是我制作的脚本:

echo "telnet $1 $2"
sleep 10
echo "HEAD $3 HTTP/1.0"
echo
echo
sleep 2

在控制台中输入:

./gethost microsoft.com 80 /

给出这个结果:

telnet microsoft.com 80
HEAD / HTTP/1.0


然后在最后两个空 echo 后返回到控制台,老实说我不明白,我什至增加了 sleep (可能的网络延迟)。

最佳答案

您的脚本只是将一些内容打印到标准输出。它实际上并不执行 telnet命令。尝试这样的事情:

telnet $1 $2 <<< $'HEAD $3 HTTP/1.0\r\n\r\n'

这将运行 telnet而不是仅仅打印命令。它还提供了 HEAD标准输入上的命令。重要发\r\n行结尾而不是 UNIX 的默认 \n行结尾,因为 \r\n是 HTTP 协议(protocol)所要求的。

参见 man bash有关 <<< 的说明运营商。

关于Linux脚本telnet HEAD请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26850271/

相关文章:

ios - Telnet 得到空输出并且没有登录名/密码

linux - 用户文件夹意外移动,无权将其移回(只读文件系统)

linux - Bash:如何在后台 while 循环中检索变量值

javascript - <img src ='img.png'> 不显示本地文件( react )

python - 从 Bash 或 Python 获取 google Chrome IndexedDB 中的数据

bash - 将 linux "cut"与标准输入一起使用

windows-7 - 通过Windows命令行连接到gmail pop服务器

c# - 如何从 unix 更改为 linux 以通过 C# 连接(使用 telnet)?

linux - 无法从 grep 命令中排除单词

linux - git 更改未反射(reflect)在远程存储库中