shell通过telnet调用http和smtp协议

本文介绍了如何利用expect命令行工具进行自动化交互,包括通过telnet调用HTTP和SMTP协议。详细讲解了shell发送HTTP请求的方法,如GET和POST请求的实现,并展示了shell模拟curl发送HTTP请求的步骤。此外,还提到了shell实现SMTP协议发送邮件的基本格式。最后,提及了使用Python通过SMTP发送邮件的参考资源。
摘要由CSDN通过智能技术生成

expect命令简介

Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。常用语ssh和telnet等需要进行人机交互的命令。

以前写过一个expect实现ssh跳转登录的例子:http://blog.csdn.net/koastal/article/details/52434314

基本结构

## 如果expect文件不存在,需要安装 yum install expect
#!/usr/bin/expect
## 设置脚本超时时间
set timeout 30
## 执行spawn之后的命令
spawn ssh -l root 192.168.238.130
## 如果执行结果包含expect之后的内容,则继续执行,否则退出
expect "password:"
## 模拟人工发送数据
send "root\r"
## 执行完成后保持交互状态,把控制权交给控制台,可以进一步人工操作
interact 

HTTP和SMTP的报文格式

具体报文格式参照,php通过sock实现http和smtp的文章:http://blog.csdn.net/koastal/article/details/53149689

shell发送HTTP请求

expect发送GET请求

基本格式

#!/usr/bin/expect
set timeout 30
spawn telnet 127.0.0.1 80
expect "]"
send "GET /demo.php?name=zhezhao&age=23 HTTP/1.1\r"
send "Host: 127.0.0.1\r"
send "Connection: close\r"
send "\r\r"
interact

expect发送POST请求

基本格式

#!/usr/bin/expect
set timeout 30
set data "name=zhezhao&age=23"
set length [string length $data]

spawn telnet 127.0.0.1 80
expect "]"
send "POST /demo.php HTTP/1.1\r"
send "Host: 127.0.0.1\r"
send "Content-type:application/x-www-form-urlencoded\r"
send "Content-length:$length\r"
send "Connection: close\r\r"
send "$data\r"
interact

shell模拟curl发送HTTP请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值