【问题标题】:Cross platform solution for automating ncurses-type telnet sessions用于自动化 ncurses 类型 telnet 会话的跨平台解决方案
【发布时间】:2011-01-04 20:22:30
【问题描述】:

背景

当传统硬件无法在其他接口中提供简单的解决方案时,我在网络和电信方面的部分工作涉及自动化 telnet 会话。许多旧设备只能通过工艺端口(RS-232 串行端口)、SNMP 或 telnet 访问。有时 telnet 是访问特定信息的唯一方式,但是 telnet 被设计为人机界面,因此需要屏幕抓取。此外,还有为了节省带宽而只更新部分屏幕的抓取问题(请参阅ncurses)。在我的工作中,我使用了 ActiveState Expect 和 Python telnet 库。

问题

哪些语言和库能够自动执行 telnet 会话并具有以下要求:

更好的解决方案还包括以下内容:

  • 易于再分发(例如,不 需要在机器上安装一些巨大的运行时。)
  • 也适用于 SSH、串行连接和其他命令行界面。

【问题讨论】:

    标签: screen-scraping telnet ncurses ui-automation console-scraping


    【解决方案1】:

    查看 ActiveTcl 发行版中的 demos/Expect/term_expect。它模拟光标可寻址终端,并允许您在特定屏幕位置测试输出。查看文件末尾的示例屏幕抓取代码。

    【讨论】:

    • 这很有趣,但是如果用户不知道输出的位置怎么办?另外,位置不是根据当前的屏幕尺寸而变化,还是有大多数终端都同意的默认屏幕尺寸?
    • 当终端是硬件的时候,大多数有 80 列 x 24 行,所以我希望这是默认大小,这就是 term_expect 使用的大小。您可以尝试查找所需字段的屏幕位置,或者您可以使用 [$term get 1.0 end] 抓取整个屏幕区域,然后使用正则表达式或其他字符串命令在其中进行搜索。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多