Sample code for 30+ languages & platforms
Go

SOCKS4 and SOCKS5 Proxy for FTP

See more FTP Examples

Demonstrates how to connect to an FTP server through a SOCKS4 or SOCKS5 proxy. Both SSL/TLS and non-secure FTP communications may use SOCKS4 and SOCKS5 proxies.

Chilkat Go Downloads

Go
    success := false

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

    ftp := chilkat.NewFtp2()

    ftp.SetHostname("ftp.example.com")
    ftp.SetUsername("login")
    ftp.SetPassword("password")

    // To use a SOCKS4 or SOCKS5 proxy, simply set the following
    // properties prior to connecting:
    // The SOCKS hostname may be a domain name or 
    // IP address:
    ftp.SetSocksHostname("www.mysocksproxyserver.com")
    ftp.SetSocksPort(1080)
    ftp.SetSocksUsername("myProxyLogin")
    ftp.SetSocksPassword("myProxyPassword")
    // Set the SOCKS version to 4 or 5 based on the version
    // of the SOCKS proxy server:
    ftp.SetSocksVersion(5)
    // Note: SOCKS4 servers only support usernames without passwords.
    // SOCKS5 servers support full login/password authentication.

    // Connect and login to the FTP server.
    success = ftp.Connect()
    if success != true {
        fmt.Println(ftp.LastErrorText())
        ftp.DisposeFtp2()
        return
    }

    // Change to the remote directory where the file is located.
    // This step is only necessary if the file is not in the root directory
    // for the FTP account.
    success = ftp.ChangeRemoteDir("junk")
    if success != true {
        fmt.Println(ftp.LastErrorText())
        ftp.DisposeFtp2()
        return
    }

    // Download a file.
    localFilename := "c:/temp/hamlet.xml"
    remoteFilename := "hamlet.xml"

    success = ftp.GetFile(remoteFilename,localFilename)
    if success != true {
        fmt.Println(ftp.LastErrorText())
        ftp.DisposeFtp2()
        return
    }

    success = ftp.Disconnect()

    fmt.Println("File Downloaded!")

    ftp.DisposeFtp2()