Bonjour,
Je tente de créer un client ftp en mode passif sous linux, mais très simpliste pour le moment.
En clair, je désire juste me familiariser avec la programmation des sockets, donc mon client n'aura que la fonctionnalité de lister ce qui se trouve sur le serveur ftp.
Pour l'instant j'arrive à me connecter au port 21 du serveur FTP, donc de passer mes commandes et recuperer les réponses, mais je n'arrive pas a récuperer les données.
Voici mes resultats obtenu :
Reponse à la demande de connexion via la fonction connect():
220 TYPSoft FTP Server 1.10 ready...
Reponse à l'entrée du nom de l'utilisateur avec la commande USER body\r\n
331 Password required for body.
Reponse à l'entrée du mot de passe avec la commande PASV\r\n ****
230 User body logged in.
Reponse à la commande SYST\r\n
215 UNIX Type: L8
Reponse à la commande PASV\r\n
227 Entering Passive Mode (10,10,1,41,11,241).
Donc la j'ai surement un problème de compréhension du mode passif.
J'explique ce que j'ai compris du mode passif.
Le mode passif permet d'outrepasser le problème que pourrait poser un firewall sur une connexion initialiser de l'exterieur, et donc d'inverser les rôles pour que ce soit le client qui ouvre la connexion pour la data.
J'ai donc crée une petite fonction qui prend la ligne 227 Entering Passive Mode(10,10,1,41,11,241) et qui recupere le numéro de port 11241.
Donc si je ne me trompe pas il faut donc que je crée un nouveau socket qui aura pour adresse de destination le serveur et le numéro de port de destination le 11241.
Autre constat avec wireshark et en me connectant au serveur ftp en mode passif le port que je visualise dans la réponse entering passive est différent de celui utilisé par le client pour récuperer les données.
Ben j'espere avoir été clair sinon je vous remercie pour toute les réponses d'avance.
Partager