2013-06-30 33 views
1

這是一個用於模擬Cisco交換機接口的項目。我基本上想創建一個我可以telnet到的命令行界面。使用Python創建可通過telnet訪問的CLI shell

如果有人熟悉思科交換,這主要是他們如何控制。我想要在這些開關上生成命令的模擬輸出。我嘗試使用python的扭曲框架和cmd選項。

但我只是需要一些簡單的東西,基本上是一個模塊,可以telnet到cli,然後我可以使用命令,因爲我認爲適合不同的模塊,然後顯示命令。

我將不勝感激,如果有人告訴我這樣做的正確的方式,甚至我可以使用我們的(遠程登錄選項不是強制性的。)

回答

0

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() 
+0

它沒有運行directly..I收到以下錯誤 文件 「C:\ Python27 \ LIB \詛咒\ __ init__.py」,第15行,在 從_curses導入* ImportError:沒有名爲_curses的模塊 是否還有其他的依賴關係? – Strommer

+0

確實,模塊依賴於curses。如果你在* nix上運行它,那麼詛咒應該是微不足道的安裝。如果你在Windows上運行它,這些包應該工作:http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses – dilbert

+0

新錯誤:'找不到SocketServer'。當我從telnetsrvlib導入*時,我得到這個錯誤:'模塊'對象沒有屬性'TelnetCLIHandler'。 – Strommer