Sample code for 30+ languages & platforms
DataFlex

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSsh
    Integer iChannelNum
    String sTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatSsh)) To hoSsh
    If (Not(IsComObjectCreated(hoSsh))) Begin
        Send CreateComObject of hoSsh
    End

    Get ComConnect Of hoSsh "172.16.16.100" 22 To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSsh To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Authenticate using login/password:
    Get ComAuthenticatePw Of hoSsh "myLogin" "myPassword" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSsh To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Start a shell session.
    Get ComQuickShell Of hoSsh To iChannelNum
    If (iChannelNum < 0) Begin
        Get ComLastErrorText Of hoSsh To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // 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..)
    Get ComChannelReceiveUntilMatch Of hoSsh iChannelNum "#" "utf-8" True To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSsh To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Show what we received so far:
    Get ComGetReceivedText Of hoSsh iChannelNum "utf-8" To sTemp1
    Showln sTemp1

    // Send a "show clock" command.
    Get ComChannelSendString Of hoSsh iChannelNum "show clock" + (character(10)) "utf-8" To iSuccess

    // Read the output to the next interactive prompt.
    Get ComChannelReceiveUntilMatch Of hoSsh iChannelNum "#" "utf-8" True To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSsh To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComGetReceivedText Of hoSsh iChannelNum "utf-8" To sTemp1
    Showln sTemp1

    // Send another command and get the output, and so on...
    Get ComChannelSendString Of hoSsh iChannelNum "some other command" + (character(10)) "utf-8" To iSuccess
    Get ComChannelReceiveUntilMatch Of hoSsh iChannelNum "#" "utf-8" True To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSsh To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComGetReceivedText Of hoSsh iChannelNum "utf-8" To sTemp1
    Showln sTemp1

    Send ComDisconnect To hoSsh


End_Procedure