IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

transmission par ftp...


Sujet :

Développement

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 411
    Points : 192
    Points
    192
    Par défaut transmission par ftp...
    bonjour,
    quelqu'un sait-il comment transmettre un fichier sur un serveur ftp depuis un client telnet (donc pas de get ..., les vrais commandes).

    j'ai utilisé au début : user ***** et pass *****

    strncpy(user, "USER *****");
    send(sock,user,strlen(user),0);

    strncpy(mdp, "PASS *****" );
    send(sock,mdp,strlen(mdp),0);


    mais ensuite j'ai consulter les rfc mais je n'ai pas trouvé comment faire pour envoyer sur le serveur le fichier en question.

    J'ai besoin de ca pour faire mon programme.

    est-ce que vous savez comment faire ?? merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 411
    Points : 192
    Points
    192
    Par défaut
    j'ai essayer d'utiliser put et get mais ces commandes ne fonctionnent pas sur le serveur (c'est normal ????)

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: transmission par ftp...
    Citation Envoyé par youp_db
    strncpy(user, "USER *****");
    send(sock,user,strlen(user),0);
    Ce code est incorrect.
    • strncpy() attend 3 paramètres
    • strncpy() ne met pas toujours de 0 en fin de chaine (lire la doc)
    • strlen() ne fonctionne que si le paramètre est l'adresse d'une chaine C valide, c'est à dire terminée par un 0.
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 411
    Points : 192
    Points
    192
    Par défaut
    merci beaucoup pour ces infos mais meme en utilisant telnet sans le programme je n'y arrive pas:

    quand je tape manuellement dans une console : telnet ftp.***.com 21
    et ensuite : USER ***** et PASS **** ca fonctionne bien.

    mais ensuite : GET et PUT ne sont pas reconnues !!!!

    => réponse du serveur : "PUT not understood" et pareil pour GET...

    merci d'avance

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par youp_db
    j'ai essayer d'utiliser put et get mais ces commandes ne fonctionnent pas sur le serveur (c'est normal ????)
    Les commandes put et get appartiennent au binaire "ftp" qui lance une connexion basée sur le protocole FTP .
    En réalité elles n'existent pas dans le protocole en lui-même, donc non compréhensible par le serveur sur une connexion directe par telnet.

    Au niveau FTP pur, l'équivalent de get est RETR, tandis que pour put il s'agit de STOR.

    Il faut également savoir qu'entre l'identification par USER/PASS et la possibilité de récupérer des fichiers, il y a une étape indispensable à passer, la définition du port de communication via la commande PORT.

    Je te conseille de visiter cet excellent site :
    http://www.iprelax.fr
    et notamment la section sur le ftp
    http://www.iprelax.fr/ftp

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    [delestage]
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    d'ailleur le serveur attend en général que tu lui envoie certaine petite donnée tel que pasv ou le mode actif ( PORT,...)

    bonne chance

  8. #8
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Sans oublier que le protocole FTP nécessite en général deux connexions simultanées : l'une sur le port 20 pour la transmission effective des données (FTPDATA) et une autre sur le port 21 pour l'envoi des commandes et la réception de leurs réponses (FTPCMD).
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Tout à fait !

    Il te faut donc 2 telnet que ca puisse marcher !

    Dans le premier telnet sur l'ip du serveur, port 21 (control connection) :

    > USER ...
    < 331 Password required for ...
    > PASS ...
    < 230 Logged on
    > PASV
    < 227 Entering passive mode (a1,a2,a3,a4,p1,p2)

    avec a1.a2.a3.a4 l'adresse IP et p1*256+p2 le numero de port)

    Dans ton 2eme telnet, tu ouvres une connection sur l'IP + port qui t'a été fournit par la reponse au PASV, tu obtiens la connection DATA.

    Tu fais ensuite les differents CD pour te deplacer dans l'arborscence du serveur via la control connection. Tu fais ensuite ton STOR, et tu balances le contenu du fichier via la connection DATA.

    Super simple, FTP...
    Nicolas

Discussions similaires

  1. [FTP] Télécharger un fichier par FTP
    Par jerome38000 dans le forum Langage
    Réponses: 5
    Dernier message: 27/05/2011, 15h41
  2. Comment récupérer tout un répertoire par FTP ???
    Par titof dans le forum Réseau
    Réponses: 6
    Dernier message: 03/10/2006, 18h54
  3. Transfert fichier par FTP
    Par j_bolduc dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/11/2005, 19h59
  4. Transfert de fichier par ftp
    Par schub1015 dans le forum MFC
    Réponses: 3
    Dernier message: 14/01/2004, 17h53
  5. Réponses: 1
    Dernier message: 19/08/2003, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo