PureBasic
PureBasic
SSH Commands to Cisco Switch
See more SSH Examples
Demonstrates how to establish an SSH session with a Cisco switch (or something similar) and send commands in a device console session.Chilkat PureBasic Downloads
IncludeFile "CkSsh.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
ssh.i = CkSsh::ckCreate()
If ssh.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkSsh::ckConnect(ssh,"172.16.16.100",22)
If success <> 1
Debug CkSsh::ckLastErrorText(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndIf
; Authenticate using login/password:
success = CkSsh::ckAuthenticatePw(ssh,"myLogin","myPassword")
If success <> 1
Debug CkSsh::ckLastErrorText(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndIf
; Start a shell session.
channelNum.i = CkSsh::ckQuickShell(ssh)
If channelNum < 0
Debug CkSsh::ckLastErrorText(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndIf
; If the CISCO switch returns a prompt with "#", then read until we get the prompt.
; (It's not actually required that we do this, but it helps to know that all is OK at this point..)
success = CkSsh::ckChannelReceiveUntilMatch(ssh,channelNum,"#","utf-8",1)
If success <> 1
Debug CkSsh::ckLastErrorText(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndIf
; Show what we received so far:
Debug CkSsh::ckGetReceivedText(ssh,channelNum,"utf-8")
; Send a "show clock" command.
success = CkSsh::ckChannelSendString(ssh,channelNum,"show clock" + Chr(10),"utf-8")
; Read the output to the next interactive prompt.
success = CkSsh::ckChannelReceiveUntilMatch(ssh,channelNum,"#","utf-8",1)
If success <> 1
Debug CkSsh::ckLastErrorText(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndIf
Debug CkSsh::ckGetReceivedText(ssh,channelNum,"utf-8")
; Send another command and get the output, and so on...
success = CkSsh::ckChannelSendString(ssh,channelNum,"some other command" + Chr(10),"utf-8")
success = CkSsh::ckChannelReceiveUntilMatch(ssh,channelNum,"#","utf-8",1)
If success <> 1
Debug CkSsh::ckLastErrorText(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndIf
Debug CkSsh::ckGetReceivedText(ssh,channelNum,"utf-8")
CkSsh::ckDisconnect(ssh)
CkSsh::ckDispose(ssh)
ProcedureReturn
EndProcedure