gpt4 book ai didi

linux - 如何使用 empty 与 telnet 交互

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:14 26 4
gpt4 key购买 nike

我需要替换一个非常简单的 expect 脚本,如下所示:

#!/usr/bin/expect
spawn telnet 192.168.1.175
expect {
"assword" {send "lamepassword\r"}
}
interact

使用 empty 的等效 bash 脚本,如下所示:

#!/bin/bash
empty -f -i in -o out telnet 192.168.1.175
empty -w -i out -o in "assword" "lamepassword\n"

之后我需要用户与 telnet 进行交互,我不知道该怎么做。我想到的最接近的事情是使用 socat - in 之类的东西将 stdinstdoutnamed pipes 绑定(bind).欢迎提出任何建议!

最佳答案

I tried cat out & cat /dev/stdin >in, it works, but it has an extra newline, tab completion does not work and ctr+c terminates cat and not the running host process. I am trying to persuade socat to act according to those needs.

使用socat 将键盘输入传输到telnet 进程是个好主意。示例:

cat out & socat -u -,raw,echo=0 ./in

为了允许 Ctrl-C 终止 socat,添加 escape=3:

cat out & socat -u -,raw,echo=0,escape=3 ./in

但请注意,这不会终止 telnet session ,因为它确实以守护进程模式启动,因此您可以通过以下方式重新连接到 telnet再次执行 socat。要结束 telnet,您只需注销即可。

关于linux - 如何使用 empty 与 telnet 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39125283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com