久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      SecureCRT腳本環(huán)境類(python)

      重構(gòu)看的七七八八了,感覺應(yīng)該練練手,自己打包一個SecureCRT的環(huán)境類。不過暫時沒讓我想到如何將這個類放在文件中,然后每次寫腳本的時候import進來就好了,等有空再想想怎么解決。

      所以現(xiàn)在還是只能復(fù)制粘貼后用。

      其實再寫個設(shè)備類,然后從設(shè)備類中調(diào)用crt環(huán)境類,就可以達到設(shè)備相關(guān)的東西和環(huán)境分開的效果。以后如果沒有crt了,只要把crt環(huán)境類換掉就行了。

      沒有打包log功能,這個類是我用來直接在內(nèi)存中處理回顯字符串用的,所以不需要log。

      # $language = "python"

      # $interface = "1.0"

      class CrtEnv():

      @staticmethod

      def promptBox(szMessage, szTitle):

      return crt.Dialog.Prompt(szMessage, szTitle, "", True)

      @staticmethod

      def inputBox(szMessage, szTitle):

      return crt.Dialog.Prompt(szMessage, szTitle, "", False)

      @staticmethod

      def messageBox(szMessage, szTitle):

      crt.Dialog.MessageBox(szMessage, szTitle)

      def __init__(self):

      self.__oTab = None

      self.__szPrompt = ""

      self.__szHostname = ""

      def login(self, szHostname, szUsername, szPassword):

      self.__szHostname = szHostname

      if self.__ssh(szUsername,szPassword):

      return True

      if self.__telnet(szUsername,szPassword):

      return True

      return False

      def logout(self):

      self.__oTab.Session.Disconnect()

      def send(self, szCMD):

      self.__checkEnv()

      self.__send(szCMD)

      self.__oTab.Screen.WaitForString(szCMD)

      return str(self.__getResult())

      def changePrompt(self, szCMD):

      self.__send(szCMD)

      self.__oTab.Screen.WaitForString(szCMD)

      self.__oTab.Screen.WaitForString("Some String will not echo.", 1)

      self.__updatePrompt()

      def getTabName(self):

      if self.__isTabEmpty():

      self.__getCurrentTab()

      return str(self.__oTab.Caption)

      def __ssh(self, szUsername, szPassword):

      szConnectString = "/SSH2 /L "%s" /PASSWORD "%s" %s" %

      (szUsername, szPassword, self.__szHostname)

      if self.__connect(szConnectString) == False:

      return False

      self.__oTab.Screen.Synchronous = True

      self.__waitDeviceTabInit()

      return True

      def __telnet(self, szUsername, szPassword):

      szConnectString = "/Telnet %s" % (self.__szHostname)

      if self.__connect(szConnectString) == False:

      return False

      self.__oTab.Screen.Synchronous = True

      self.__oTab.Screen.WaitForString("ame")

      crt.Sleep(200)

      self.__send(szUsername)

      self.__oTab.Screen.WaitForString("assword")

      crt.Sleep(200)

      self.__send(szPassword)

      self.__waitDeviceTabInit()

      return True

      def __connect(self, szConnectString):

      try:

      self.__oTab = crt.Session.ConnectInTab(szConnectString)

      return True

      except:

      return False

      def __waitDeviceTabInit(self, szString = "#"):

      crt.Sleep(300)

      self.__oTab.Screen.WaitForString(szString)

      def __send(self, szCMD):

      szCMD = szCMD + 'r'

      self.__oTab.Screen.Send(szCMD)

      def __checkEnv(self):

      if self.__isTabEmpty():

      self.__getCurrentTab()

      self.__oTab.Screen.Synchronous = True

      if self.__isPromptEmpty():

      self.__updatePrompt()

      def __isPromptEmpty(self):

      if self.__szPrompt == "":

      return True

      return False

      def __isTabEmpty(self):

      if self.__oTab == None:

      return True

      return False

      def __getCurrentTab(self):

      self.__oTab = crt.GetActiveTab()

      def __getResult(self):

      return self.__oTab.Screen.ReadString(self.__szPrompt)

      def __updatePrompt(self):

      crt.Sleep(300)

      rowIndex = self.__oTab.Screen.CurrentRow

      colIndex = self.__oTab.Screen.CurrentColumn – 1

      self.__szPrompt = self.__oTab.Screen.Get(rowIndex, 0, rowIndex, colIndex)

      self.__szPrompt = str(self.__szPrompt.strip())

      def main():

      # 測試用。獲取當(dāng)前tab標簽,并直接向設(shè)備發(fā)送命令

      test1 = CrtEnv()

      test1.send("terminal length 0")

      CrtEnv.messageBox(test1.send("sh int status"),"run")

      CrtEnv.messageBox(test1.getTabName(), "getTabName")

      test1.changePrompt("conf t")

      CrtEnv.messageBox(test1.send("do sh ip int br"),"run")

      test1.changePrompt("end")

      CrtEnv.messageBox(test1.send("sh int status"),"run")

      # 新登錄一臺設(shè)備

      test2 = CrtEnv()

      test2.login("192.168.1.1","qw er","wqerqwer")

      test1.logout()

      test2.logout()

      main()

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號