自动化Telnet任务:用Linux脚本解析消息并退出

2024-08-01 12:17:52 浏览数 (2)

问题

我正在连接到一个 telnet 监听器。telnet 服务器每秒发送 '1234'。我想读取这条消息 '1234' 并关闭 telnet 会话。 下面是我的代码,但它不起作用。

代码语言:javascript复制
#!/bin/bash
telnet 192.168.10.24 1234
read $RESPONSE
echo "Response is"$RESPONSE
echo "quit"

我如何自动读取 telnet 消息?


回答

如果你的目标 telnet 服务端口是可访问的,那么最简单和最容易的方法就是:

代码语言:javascript复制
sleep <n> | telnet <server> <port>
  • n - 自动退出前的等待时间,以秒为单位。这个时间可以是小数,例如 0.5 秒。请注意,某些需要的输出可能不会在指定的等待时间内返回。因此,我们可能需要相应地增加等待时间。
  • server - 目标服务器IP或主机名。
  • port - 目标服务端口号。

你也可以像这样将输出重定向到文件,

代码语言:javascript复制
sleep 1 | telnet <server> <port> > output.log

如果你的目标 telnet 服务端口不可正常访问,或者说远程主机不接受也不丢弃连接请求,则上述方法可能不奏效。 在这种情况下,需使用以下方法:

代码语言:javascript复制
RESPONSE=$(timeout 5 telnet 192.168.10.24 1234)

参考

  • stackoverflow question 10172860
  • man telnet

0 人点赞