背景
我在网络和电信公司工作的一部分工作涉及在传统硬件无法在其他接口中提供简单解决方案时自动执行telnet会话.许多旧设备只能通过工艺端口(RS-232串行端口),SNMP或telnet访问.有时telnet是访问特定信息的唯一方法,但telnet被设计为人机界面,因此需要屏幕抓取.此外,还存在刮擦屏幕的问题,其中仅更新部分以节省带宽(参见ncurses).在我的工作中,我使用了ActiveState Expect和Python telnet库.
题
哪些语言和库能够自动执行telnet会话并具有以下要求:
>适用于大型项目(例如Tcl
似乎没有扩展性
Python在我的经验和似乎已过时)
>跨平台(例如Pexpect does not work on Windows和Activestate
Expect behaves differently on
Windows plus需要更新的DEP
机器要关闭)
>能够屏幕重绘部分屏幕的刮擦会话
(类似于命令行程序中ncurses的行为)
>像啤酒一样免费!
一个更好的解决方案还包括以下内容:
>易于再分发(例如,不可.)
需要在机器上安装一些巨大的运行时.)
>也适用于SSH,串行连接和其他命令行界面.
最佳答案 看一下ActiveTcl发行版中的demos / Expect / term_expect.它模拟光标可寻址终端,允许您在特定屏幕位置测试输出.查看文件末尾的示例屏幕抓取代码.