Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MYFTP :: FTP EN C SOUS UNIX


Information sur la source

Catégorie :Réseaux & Internet Classé sous : ftp, client, reseaux, linux, transfert Niveau : Initié Date de création : 17/04/2006 Date de mise à jour : 23/03/2007 01:59:47 Vu / téléchargé: 10 640 / 1 233

Note :
Aucune note

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Un FTP en C sous UNIX en ligne de commande simplifié.

Gestion du mode actif et passif.
Gestion du proxy.
Gestion des logs de connections.
Navigation locale dans les dossiers.
Navigation sur le serveur.
Gestion des connexions autre que sur le port 21(21 par défault).

Envoi/Réception de fichiers (non multiple).
Pas de création/suppression de répertoires.
 

Source

  • Voir le Zip.
  • Fonctionne sous Cygwin et Unix.
  • Norme ANSI.
Voir le Zip.
Fonctionne sous Cygwin et Unix. 
Norme ANSI.

Conclusion

Execution :
./myftp -a serveur  

A aujourd'hui :
Mode actif non implémenté.[MIS A JOUR !]
Proxy ne fonctionne pas encore. [MIS A JOUR !]

A venir :
Ce qui n'est pas implémenté à aujourd'hui.

Bugs :
La gestion des arguments de la ligne de commande.
Deux arguments d'un printf font un WARNING en compilation -Wall (pas trés grave).
A voir...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

10 mai 2006 02:08:54 :
Mise à jour : * Mode actif * Connection par proxy * Fichiers de log * Gestion avancée des connections sur le canal de données
23 mars 2007 01:59:47 :
CORRECTION: Fichier ZIP corrompu :(

Commentaires et avis

signaler à un administrateur
Commentaire de Spawnrider le 17/04/2006 16:51:39

Avis aux etudiants de l'IUP de Rouen :
il n'est pas la peine de faire un copier/coller de mon code sans en modifier une grande partie.

Vous pouvez tout de même vous en inspirez...

signaler à un administrateur
Commentaire de Spawnrider le 17/04/2006 18:10:00

Juste pour dire que :
Le fichier select.c n'a rien à faire dans l'archive...

signaler à un administrateur
Commentaire de kinjiro le 17/04/2006 21:52:11

Salut j'ai regardé tres vite tes sources apres avoir regardé ton screenshot.
Dans le screenshot j'ai remarqué que l'on voyai le pass que tu insérais.
Je te conseil de ne pas utiliser un scanf pour un mot de pass (si une personne passe derriere ton
dos, li l'ecran il connaitra le mot de pass).

Donc dans fonction.c

change:

char pass[255];
printf("Mot de passe pour %s :",user);
scanf("%s",pass);

par:

char *pass;
pass = (char *)malloc(255);
printf("Mot de passe pour %s :",user);
pass = getpass("");

Comme cela lors de la saisie du mot de pass rien ne s'affiche et aucun risque de te faire voler ton
mot de pass. En ce qui concerne le reste des sources je n'ai pas tout regardé.
Si je remarque d'autre petite chose du genre je t'en ferai part.

signaler à un administrateur
Commentaire de Spawnrider le 18/04/2006 01:07:08

Merci à toi, c'est exactement ce dont j'avais besoin...
getpass("");
...
c'est quoi comme fonction ?
C'est une fonction a toi ou une fonction d'une bibliotheque C ANSI?
Merci en tout cas ;)

signaler à un administrateur
Commentaire de Spawnrider le 18/04/2006 01:09:43

Autant pour moi,
aprés une verifion :
man 3 getpass http://www.maconlinux.net/linux-man-pages/fr/getpass.3.html
Je viens de trouver mon bonheur ...

Par contre, pour le mode actif, je dois récuperer mon IP internet, celle fourni par ma passerelle et non celle de ma carte ethenet. Quelqu'un sait-il comment faire ?
J'ai entendu parler de getsockname.....

Merci à vous ;)

signaler à un administrateur
Commentaire de Spawnrider le 28/04/2006 06:29:47

Bon apparement pour getpass, c'est obsoléte et déconseillé donc je ne l'utiliserais pas...
Sinon, je viens de finir le mode actif et le mode passif/proxy et ça fonctionne...
J'upload dès que possible ;)

signaler à un administrateur
Commentaire de Spawnrider le 10/05/2006 02:10:04

Mise à jour effectuée !
Je n'ai pas utilisé la fonction getpass() [depreciée !]...

;)

signaler à un administrateur
Commentaire de rask le 13/05/2006 21:33:32

Bonsoir je veux que tu m'envoies la dernière version de ton code.
Du courage

romaric
rask9@yahoo.fr

signaler à un administrateur
Commentaire de Spawnrider le 13/05/2006 23:57:18

Et bien tu peux télécharger la derniere version ici ou poster sur mon forum sur le site http://www.spawnrider.net.

Bien que la version présente ici soit effectivement la derniere en  date :)

Bonne soirée
+++

signaler à un administrateur
Commentaire de rask le 14/05/2006 14:43:43

Bonjour je n'arrive pas à l'exécuter sur ma machine. Il me dit que la connexion a été refusée. Je voudrais aussi savoir s'il n'y a pas un code pour la partie serveur et un autre pour la partie client. Merci de m'aider.
A plus

Romaric

signaler à un administrateur
Commentaire de rask le 14/05/2006 15:55:33

je voudrais ajouter que j'utilise Debian sarge
A +
Romaric

signaler à un administrateur
Commentaire de Spawnrider le 15/05/2006 01:11:10

Bonjour Romaric,
Non je n'ai absolument pas de code pour une partie serveur.
C'est un client FTP simple.
Ta plateforme ne change rien au résultat escompté du fait que tu recompiles tes sources sur ta plateforme.
Si tu as une connection refusée, c'est soit que tu n'est pas connecté à un serveur ou que le serveur te refuse la connection. Cela dit, je n'exclus pas une alerte du type "Connection refusé" sur une commande de type ls ou transfert de fichier sur le canal de données en mode actif.
Mais normalement vu que tu n'as surement pas mis cette option en parametre du client ftp, cela devrait fonctionner correctement.

J'ai testé avec succés par proxy (Janaserver2), Filezilla, ftpserv, u-serv, 1 ftp de ma machine.
J'ai meme recompilé les sources sur Cygwin avec succés...

Si tu as d'autres questions n'hesites pas...
je tiens à préciser que ce ftp est mis en ligne en vue de l'étude des sources, d'une eventuelle amélioration ou tout autre chose du même type et non prévue pour une utilisation normale de transfert de fichiers.
Je ne suis pas responsable des pertes de fichiers dû à un probléme de transfert...

Yohann

signaler à un administrateur
Commentaire de cimcim le 20/07/2006 09:56:34

Salut Spawnrider
et merci pour ta source qui m'aide bien... Par contre, j'ai une remarque...
Je suis sous Debian Sarge (moi aussi) et la connexion à un serveur ftp passe sans problème. Après quoi, je peux faire un ls. Mais un seul.... En effet, si je refait un 2eme ls, il n'entre jamais dans le "if(code==227){..." car code vaut 200...
Je pense qu'il doit manquer un cmd_recv quelque part, car une fois la transaction terminée, je recois un code 226 qui n'est pas traité, mais qui fait que j'ai un code de retard par rapport au if...
Voila, si tu as réussi a comprendre ma question, pourrais tu m'aider ?
Merci !!

signaler à un administrateur
Commentaire de cimcim le 20/07/2006 10:58:25

oki, j'ai trouvé ce qui n'allait pas....
en fait, après avoir fermé la socket, il faut relire ce que le serveur envoie...
donc, après le
"close(current.dat_d);"
il faut ajouter :
"long_chaine = recv(current.com_d,cmd,sizeof(cmd),0);
cmd[long_chaine-2]='\0';
code = atoi(str_sub(cmd,0,2));
printf("%s\n",cmd);"
et à la fin de la transaction, on obtient cette sortie écran :
"226 Transfer complete.
ftp> "
voila... en espérant que ca aide quelqu'un...
CimCim

signaler à un administrateur
Commentaire de Spawnrider le 20/07/2006 12:31:21

Je te remercie beaucoup de l'aide et de l'attention que
tu apportes à ce programme :)

Je n'avais pas l'erreur sous Mandrake et CygWin.
Cependant, l'astuce que tu préconnises doit être aussi valable pour (K)ubuntu...:)

signaler à un administrateur
Commentaire de cimcim le 20/07/2006 13:16:13

De rien, c'est normal, et en meme temps, moi ca m'aide !!! ;)
Je complete mon message pour dire qu'il faut également ajouter la relecture des données envoyées dans les fonctions get_file et send_file...
Et après, tout à l'air de rouler !!!

signaler à un administrateur
Commentaire de evo11wrc le 22/03/2007 21:56:54

votre fichier n'est pas valide
on a besoin de fillezella pour avoir un code valide
attendre votre reponse
merci

signaler à un administrateur
Commentaire de Spawnrider le 23/03/2007 02:00:43

@evo11wrc : Désolé pour ce petit soucis de fichier, je ne sais pas trop ce qu'il a pu se passer.
Cela dit, c'est corrigé ;)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

transfert d'imge d'un serveur vers un client en C++(linux) [ par doberman7578 ] bonjour,n'aarivant pas a effectuer le transfert d'une image d'un serveur a un client en c++ , quelqu'un pouurait il maider a effectuer celamercia++ Client/serveur Socket transfert de plusieurs fichiers [ par atifelkhachine ] Bonjour.quelqu'un peut me donner un pti guide pour realiser une application C/S de transfert de plusieurs fichiers binaires en utilsant les sockets . client windows , serveur linux mysql [ par Guilhou ] Bonjour à tous, j'aurais voulu savoir s'il était possible de faire communiquer une serveur linux avec des clients qui tournent sous windows. transfert de fichier!!! [ par youpiyoyo ] je suis en galère ca fais depuis le debut de l'aprem ke je cherche a faire du transfert de fichier entre un serveur et un clientje m'embrouille avec l Decouper un fichier avant le transfert via un socket [ par joe_la_mousse ] J'espere bien que vous pourrez m'aider... Je dois coder une application client serveur (avec un gteway au milieu) afin de transferer un fichier. Pur ftp -- seuil pour type de transfert [ par satellite34 ] bonjour,dans le cadre du dev d'un client ftp, j'ai un petit soucis qui est une ignorance de ma part :voila, en fait j'aimerai savoir a partir de quell ftp [ par progrima ] Bonjour tout le monde!!!! J'essaye de faire une application qui fait du transfert via le protocole FTP. est ce que vous pouvez me donner les fonctions Soket sous LINUX [ par diablo31170 ] Bonjour à tous le monde, comme le nom l'indique, cela va parler de soscket sous linux (en C++). Il aut savoir que je travaille en mode connect&#2 [C] Connexion à MsSQL sous Linux [ par ZedMaTrix ] Salut les codeurs !Voila, je suis interessé par le developpement d'un client SQL.La cible de mon programme est un serveur MS-SQL.Bon pour le moment, s FTP transfert de fichier [ par deck_bsd ] Bonjour a tous,Alors voila j'expose mon problème . J'ai crée un programme qui cherche sur le disque dur toute les photos numérique et les envoie sur u


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.