Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Conexion Ftp Utilizando Con Indy Y Proxy (https://www.clubdelphi.com/foros/showthread.php?t=38940)

gaps2k 05-01-2007 01:14:10

Conexion Ftp Utilizando Con Indy Y Proxy
 
Hola a Todos:

Deseo saber si alguien tiene la información de como configurar el Componente Indy IdFTP, para que se pueda conectar utilizando un Proxy.

Este componente ya lo he utilizado en otras aplicaciones y no he logrado configurarlo para que utilice el Proxy.

Utilizo Delphi 7 con Indy 9.

De antemano, muchas gracias por la ayuda!

Bicho 05-01-2007 11:27:25

Hola, antetodo Feliz año nuevo y bienvenido al ClubDelphi.

Respecto a tú problema, creo que debes hacer lo siguiente.
- Debes conectar al proxy directamente con el FTP, usando usuario y password del mismo.
- En el log del Proxy (si usas un programa de FTP: WS-FTP, FlashFXP, etc tendrás un log visible con todo lo que ocurre Sino puedes configurarlo en el IdFTP pero es más complicado). En ese log debe aparecerte algo así:

Cita:

connecting to IP_PROXY:21
Connected to IP_PROXY port 21
220 Blue Coat FTP Service
USER usuario_del_proxy
331 Enter password.
PASS (hidden)
530-User Access denied.
530-
530-Usage: USER username@proxyusername@hostname
530 PASS password@proxypassword
! Logon failure, so quitting
Si te aparece un error o algo que te impide conectar, es que necesitas saber el tipo de autentificación del proxy, en este caso te he puesto un ejemplo en la linea USAGE y la siguiente. Pero puedo haber distintos tipos más:
  • SITE hostname
  • USER after logon
  • Proxy OPEN
  • Transparent
  • USER with no logon
  • USER fireID@remoteHost
  • USER remoteID@remoteHost fireID
  • USER remoteID@fireID@remoteHost

Con esto lo tienes todo. Para conectarte al FTP remoto a traves del Proxy sólo debes proporcionarle los datos que te ha pedido.
De esta manera, el último caso (que es el del ejemplo), para conectarte al FTP, lo haces de la siguiente manera:

Código Delphi [-]
  IdFTP.Host := 'Host_del_Proxy';
  IdFTP.Port := 21; //Se supone que es este siempre
  IdFTP.User := Usuario_FTP@Usuario_Proxy@Host_del_FTP;
  IdFTP.Password := Password_FTP@Password_Proxy;

Sólo debes averiguar el modo de conexión de tú proxy, cuando lo tengas, en el log te aparecerá como debes conectarte y ya está.

Pero de allí a descubrirlo, me costó lo mío cuando tuve que hacer un cliente de FTP para mi empresa, ya que tenía que conectarse a un servidor remoto pasando por un proxy y no habia manera de autenticarme él. Hasta que entendí el log del WS-FTP y vi algunos programas de ejemplos y componentes que descargué.
Luego cuando lo tuve bien entendido, fue muy fácil hacerlo con Indy.

Espero te sirva.

Saludos

gaps2k 15-01-2007 21:22:49

Gracias por la respuesta, pero aun no logro conectarme.

Algunas observaciones con respecto a lo que he podido observar:

Por lo poco que he leido parace se que el proxy no requiere autenticación interna y que cualquiera que este en la red interna puede conectarse a él.

Estuve buscando el Log del que hablas pero no he encontrado alguno con alguna información similar a la citada en el mensaje, sin embargo intente con un código similar al que se muestra en el mensaje pero no funciona.

//ESTA ES LA CONFIGURACION DEL PROXY//LA INTERPRETE BIEN O COMETO ALGUN ERROR.
IdFTP1.Host := 'IP_local';
IdFTP1.Port := 21;
IdFTP1.Username := 'usuarioFTP@Usuario_Interno@ftp.misitio.com';// DEBE SER STRING?
IdFTP1.Password := 'Pass_Interno@pass_Externo';

Resulta que utilizamos un proxy con el cual el FTP da problemas, ya que es muy dificil establecer conexión FTP con cualquier aplicación, ya sea el Internet Explorer o algun gestor de descarga.

Existe alguna forma alternativa de Lograr la Conexión, parecer ser que este proxy si permite conexiones vía Socks5. Pero no se como aprovechar esto.

dec 15-01-2007 21:44:38

Hola,

A mí me parece que el mismo componente "TIdFtp" te da la posibilidad de indicar mediante ciertas propiedades la información necesaria para conectar a un Servidor FTP mediante el Proxy de marras. Echa un vistazo en la misma página de los componentes Indy (en inglés):

- How do I use a TIdFTP with a FTP Proxy?

- How do I use a TIdFTP with a SOCKS proxy?

También se me ocurre que entre las "demos" de los componentes Indy se encuentra un cliente FTP que según recuerdo incluía la posibilidad de especificar un Proxy a través del que conectar al Servidor FTP de turno.

La duda que me queda de todo esto es que necesites conocer el tipo de Proxy que has de emplear, puesto que parece ser que es posible conectar a distintos tipos de Proxy's. Si esto es así, habría que averiguar dicho tipo de Proxy, bien preguntando al administrador del Servidor... bien de otro cualquier modo. Y en esto me temo que no sabría ayudarte...

Bicho 15-01-2007 23:26:57

Muy interesantes los links dec, mañana les echo un vistazo con más profundidad en el trabajo.
De todos modos no difieren mucho a lo que expuse la semana pasada, pero seguro que amplia cosas y me ayudar a ampliar mi gestor de FTP.

Saludos

dec 15-01-2007 23:47:05

Hola,

Según yo lo entiendo Bicho la forma que expusiste tú más arriba se contempla en la información que enlazo, esto es, se trata de una de las posibles formas de conectarse a un Proxy. Yo de esto estoy pez, pero, parece ser que hay diferentes tipos de Proxy's, y así habrá que elegir una forma de conexión u otra.

Si bien creo que tú proponías una forma de conectarse que parece servir, lo cierto es que parece ser que el componente "TIdFtp" proporciona esa misma forma de conexión, siguiendo otros pasos, es decir, asignando a determinadas propiedades más o menos los datos que tú decías.

Más o menos. :)


La franja horaria es GMT +2. Ahora son las 09:27:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi