Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSsh
LOCAL lnChannelNum

lnSuccess = 0

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loSsh = CreateObject('Chilkat.Ssh')

lnSuccess = loSsh.Connect("172.16.16.100",22)
IF (lnSuccess <> 1) THEN
    ? loSsh.LastErrorText
    RELEASE loSsh
    CANCEL
ENDIF

* Authenticate using login/password:
lnSuccess = loSsh.AuthenticatePw("myLogin","myPassword")
IF (lnSuccess <> 1) THEN
    ? loSsh.LastErrorText
    RELEASE loSsh
    CANCEL
ENDIF

* Start a shell session.
lnChannelNum = loSsh.QuickShell()
IF (lnChannelNum < 0) THEN
    ? loSsh.LastErrorText
    RELEASE loSsh
    CANCEL
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..)
lnSuccess = loSsh.ChannelReceiveUntilMatch(lnChannelNum,"#","utf-8",1)
IF (lnSuccess <> 1) THEN
    ? loSsh.LastErrorText
    RELEASE loSsh
    CANCEL
ENDIF

* Show what we received so far:
? loSsh.GetReceivedText(lnChannelNum,"utf-8")

* Send a "show clock" command.
lnSuccess = loSsh.ChannelSendString(lnChannelNum,"show clock" + CHR(10),"utf-8")

* Read the output to the next interactive prompt.
lnSuccess = loSsh.ChannelReceiveUntilMatch(lnChannelNum,"#","utf-8",1)
IF (lnSuccess <> 1) THEN
    ? loSsh.LastErrorText
    RELEASE loSsh
    CANCEL
ENDIF

? loSsh.GetReceivedText(lnChannelNum,"utf-8")

* Send another command and get the output, and so on...
lnSuccess = loSsh.ChannelSendString(lnChannelNum,"some other command" + CHR(10),"utf-8")
lnSuccess = loSsh.ChannelReceiveUntilMatch(lnChannelNum,"#","utf-8",1)
IF (lnSuccess <> 1) THEN
    ? loSsh.LastErrorText
    RELEASE loSsh
    CANCEL
ENDIF

? loSsh.GetReceivedText(lnChannelNum,"utf-8")

loSsh.Disconnect()

RELEASE loSsh