当前位置:  开发笔记 > 编程语言 > 正文

为Telnet会话创建脚本?

如何解决《为Telnet会话创建脚本?》经验,为你挑选了4个好方法。

有没有人知道一种简单的方法来创建一个可以连接到telnet服务器的脚本,做一些通常的telnet东西,然后注销?我正在处理不熟悉telnet的用户以及他们需要运行的命令.我想要的只是让他们双击一个脚本,并让该脚本自动执行它们的命令.

您可能想知道,"用户使用什么平台?" 它们将在Windows和Linux上运行.可以接受Perl,Java或Python等语言的实现.我看到Perl有一个Net :: Telnet模块.有人用过吗?

我理想的解决方案是创建两个脚本文件.用于Windows的BAT文件和用于Linux的shell脚本.虽然这会使双重维护成为一个问题,但这意味着我不必在每台机器上安装Perl/Java/Python /等等.不幸的是,我还没有看到任何方法来自动化批处理文件或shell脚本的telnet会话.

谢谢.



1> Vatine..:

我已经使用各种方法在unix下编写telnet会话脚本,但最简单的方法可能是一系列echo和sleep命令,其输出通过管道传输到telnet.将输出管道输入另一个命令也是可能的.

愚蠢的例子

(echo password; echo "show ip route"; sleep 1; echo "quit" ) | telnet myrouter

这(基本上)检索Cisco路由器的路由表.


@WakanTanka强制回声和睡眠在子shell中运行,共享stdout并实际让睡眠暂停输出"quit"命令之前的回显,以允许在连接终止之前打印完整的路由表.

2> Brian Agnew..:

Expect是为此而构建的,可以处理输入/输出和超时等.请注意,如果您不是TCL风扇,则可以使用Perl/Python/Java的Expect模块.

编辑:上面的页面表明维基百科Expect条目是一个有用的资源:-)


TCL/TK糟透了很多用它写的工具 - 只是因为在嵌入式系统上无法完全满足依赖性...忘掉所有垃圾,只使用netcat =几乎没有CPU负载.

3> KevinDTimm..:

另一种方法是使用与vatine显示的格式相同的netcat(或nc,取决于哪个posix),或者你可以创建一个文本文件,其中包含每个命令在它自己的行上.

我发现一些posix'telnet不能正确处理重定向(这就是为什么我建议netcat)


来吧人们,当你投票时,告诉我为什么(特别是事后几年)

4> 小智..:

此vbs脚本重新加载cisco开关,确保在Windows上安装telnet.

Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
oShell.Run "telnet"
WScript.Sleep 1000
oShell.Sendkeys "open 172.25.15.9~"
WScript.Sleep 1000
oShell.Sendkeys "password~"
WScript.Sleep 1000
oShell.Sendkeys "en~"
WScript.Sleep 1000
oShell.Sendkeys "password~"
WScript.Sleep 1000
oShell.Sendkeys "reload~"
WScript.Sleep 1000
oShell.Sendkeys "~"
Wscript.Quit

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有