写一个shell脚本来telnet一个http网站?

Posted

技术标签:

【中文标题】写一个shell脚本来telnet一个http网站?【英文标题】:Write a shell script to telnet a http webstie? 【发布时间】:2011-07-09 07:42:21 【问题描述】:

我可以在终端中远程登录一个 HTTP 网站,例如

$telnet 111.111.111.111 2222
Trying 111.111.111.111...
Connected to 111.111.111.111.
Escape character is '^]'.

然后我可以输入:

GET /url/page.php HTTP/1.1"
HOST: 111.111.111.111

输入两次回车后,我可以得到页面。 有谁知道如何使用 shell 脚本来做到这一点? 我想获得与使用上述命令相同的结果。谢谢。

【问题讨论】:

【参考方案1】:

您应该使用wgetcurl 之类的程序来下载网页;那些会为您处理协议细节。如果绝对必须直接发送字符,请查看nc 命令;您可能需要使用 expect 编写脚本。

【讨论】:

感谢您的快速回复。是的,我需要发送协议请求,但使用 telnet 或 nc 没关系。你能给我一个使用 telnet 或 nc 执行此操作的示例吗? @Chris:您发送的是有效的 HTTP 请求吗?一个真正的 HTTP 程序比手工编写更容易完成这项工作。不过,请参阅 ***.com/questions/642707/… 了解 nc 方向。 其实不是。我需要使用协议。感谢您的链接。我尝试将 http 协议放入一个单独的文件中,并使用 i 标志将其重定向到 nc,这很有效。当我使用管道时,我注意到 printf"request1\nrequest2\r\n\r\n" | nc...works 但如果我在 2 个请求中间使用 \r\n,它只会返回标头。关于\n\r\n 之间区别的任何想法? 看来没有人再看这个问题了...无论如何,谢谢您的帮助。

以上是关于写一个shell脚本来telnet一个http网站?的主要内容,如果未能解决你的问题,请参考以下文章

telnet登录路由器启动服务的shell脚本

使用shell脚本监控网站运行状态

Linux写一个shell脚本,要实现在键盘输入一个进程号,输出这个进程号的子进程pid,怎么写?

linux的shell脚本能进行http操作吗 get post ,比如一个不需要验证码的网站 脚本登录之后,获取某一页面的

telnet小脚本

shell脚本检查网站状态