【问题标题】:Creating a CLI shell accessible by telnet using Python使用 Python 创建可通过 telnet 访问的 CLI shell
【发布时间】:2013-06-30 23:40:02
【问题描述】:

这是一个模拟 Cisco 交换机接口的项目。我基本上想创建一个可以远程登录的命令行界面。

如果有人熟悉 Cisco 交换机,这主要是它们的控制方式。我想在这些开关上生成命令的模拟输出。我尝试使用扭曲的框架和 python 的 cmd 选项。

但我只需要一些简单的东西,基本上是一个可以远程登录到 cli 的模块,然后我可以在不同的模块中使用我认为合适的命令,然后显示命令。

如果有人能告诉我正确的方法,或者我可以使用什么,我将不胜感激。(telnet 选项不是强制性的。)

【问题讨论】:

    标签: python command-line-interface simulation telnet


    【解决方案1】:

    This 好像是票;简单但可行。它是一个用 Python 编写的 telnet 服务器库。它易于扩展;像这样:

    if __name__ == '__main__':
        "Testing - Accept a single connection"
        class TNS(SocketServer.TCPServer):
            allow_reuse_address = True
    
        class TNH(TelnetHandler):
            def cmdECHO(self, params):
                """ [<arg> ...]
                Echo parameters
                Echo command line parameters back to user, one per line.
                """
                self.writeline("Parameters:")
                for item in params:
                    self.writeline("\t%s" % item)
            def cmdTIME(self, params):
                """
                Print Time
                Added by dilbert
                """
                self.writeline(time.ctime())
    
        logging.getLogger('').setLevel(logging.DEBUG)
    
        tns = TNS(("0.0.0.0", 8023), TNH)
        tns.serve_forever()
    

    【讨论】:

    • 它没有直接运行..我得到以下错误文件“C:\Python27\lib\curses_init_.py”, line 15,in from _curses import * ImportError: No module named _curses' 还有其他依赖吗?
    • 没错,模块依赖于curses。如果你在*nix 上运行它,那么curses 应该很容易安装。如果你在 Windows 上运行它;这些包应该可以工作:lfd.uci.edu/~gohlke/pythonlibs/#curses
    • 新错误:'无法找到 SocketServer'。当我从 telnetsrvlib import * 执行此操作时,我收到此错误:'module' object has no attribute 'TelnetCLIHandler'。
    • 你运行的是什么python版本和平台?我无法在 Windows 7 64 位的 64 位 Python 2.7.3 上重新创建这些错误。
    • python 2.7.5 和 windows 7 64bit
    猜你喜欢
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 2015-10-01
    • 2011-09-11
    • 2015-07-26
    • 1970-01-01
    相关资源
    最近更新 更多