Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
SSH Tunnel using an HTTP proxyDemonstrates how to establish an SSH tunnel that uses an HTTP proxy. LOCAL loSshTunnel LOCAL lnSuccess LOCAL lnListenPort LOCAL lnMaxWaitMs loSshTunnel = CreateObject('Chilkat.SshTunnel') lnSuccess = loSshTunnel.UnlockComponent("30-day trial") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSshTunnel.LastErrorText) QUIT ENDIF * The DestHostname / DestPort is the server with which we * are ultimately communicating. loSshTunnel.DestPort = 1433 loSshTunnel.DestHostname = "myServer.com" * Provide information about the location of the SSH server, * and the authentication to be used with it. This is the * login information for the SSH server. loSshTunnel.SshHostname = "192.168.1.108" loSshTunnel.SshPort = 22 loSshTunnel.SshLogin = "mySshLogin" loSshTunnel.SshPassword = "mySshPassword" * To connect through an HTTP proxy, set the HttpProxyHostname * and HttpProxyPort properties to the hostname (or IP address) * and port of the HTTP proxy. Typical port numbers used by * HTTP proxy servers are 3128 and 8080. loSshTunnel.HttpProxyHostname = "www.my-http-proxy.com" loSshTunnel.HttpProxyPort = 3128 * Important: Your HTTP proxy server must allow non-HTTP * traffic to pass. Otherwise this does not work. * Start accepting connections in a background thread. * The SSH tunnels are autonomously run in a background * thread. There is one background thread for accepting * connections, and another for managing the tunnel pool. lnListenPort = 3316 lnSuccess = loSshTunnel.BeginAccepting(lnListenPort) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSshTunnel.LastErrorText) QUIT ENDIF * At this point you may write code to communicate with * the server at DestHostname/DestPort. This could be anything -- * it could be WinSock, ADO/ODBC code, Chilkat Socket, etc. * However, instead of connecting directly to DestHostname/DestPort, * your code would connect to localhost:3316 (because this * is the listenPort of the SSH Tunnel * This is what happens when you connect to localhost:3316 * 1) The connection is accepted by the SSH tunnel * background thread (which was started in the call to BeginAccepting). * 2) In the background thread, a connection to a remote SSH * server is established via an HTTP proxy. * 3) Port-forwarding is setup so that the remote SSH server connects * to the DestHostname/DestPort. * 4) Data sent by your application to localhost:3316 is ultimately forwarded to DestHostname/DestPort * 5) Data sent back from DestHostname/DestPort is forwarded back and received by your application * When you're finished with the connection, you may * stop the background tunnel threads: * Stop the background thread that accepts new connections: lnSuccess = loSshTunnel.StopAccepting() IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSshTunnel.LastErrorText) QUIT ENDIF * If any background tunnels are still in existence (and managed * by a single SSH tunnel pool background thread), stop them... lnMaxWaitMs = 1000 lnSuccess = loSshTunnel.StopAllTunnels(lnMaxWaitMs) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSshTunnel.LastErrorText) QUIT ENDIF |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser