IRC et FTP ^^ ( Lister ? )

Evos Messages postés 5 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 19 août 2003 - 2 avril 2003 à 17:12
abhoryo Messages postés 28 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 29 août 2008 - 19 nov. 2005 à 15:01
Salut :)
Bon voila je cherche a faire un script permettant de lister, envoyer, télécharger sur un FTP...
J'en suis au stade ou j'arrive a me connecter sur un FTP ( le miens pour tester [BulletProof] ) à partir des sockets.

Je commence comme ça :

---------------------------
ALIAS ftptest {
/SOCKOPEN FTP ***.***.***.*** 21
}
ON *:SOCKOPEN:FTP:{
sockwrite -tn $sockname USER mon_login
sockwrite -tn $sockname PASS mon_pass
sockwrite -tn $sockname SYST
sockwrite -tn $sockname REST 100
sockwrite -tn $sockname REST 0
sockwrite -tn $sockname CWD
sockwrite -tn $sockname PWD
sockwrite -tn $sockname LIST
; bon je sais y'a méthode moins usine à gaz, mais c pour test
}
on *:sockread:FTP:{
if ($sockerr > 0) return
:nextread
sockread %temp
if ($sockbr == 0) return if (%temp $null) %temp -
echo 4 %temp
goto nextread
}

---------------------------

Le bug ? Ben euuuh le serveur attend une réponse pour envoyer le listage... Je fais comment ?

Je suis dans la galère :p ( Si une âme charitable pouvais en plus m'indiquer la procédure pour download et upload :) )

5 réponses

cs_BadGOne Messages postés 15 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 mai 2005
29 juin 2003 à 22:29
Voila

Je t'explique la chose, j'ai eu le meme probleme que toi lorsque j'ai désiré me connecter sur un server FTP.

Il faut savoir que dans ta phase de connection tu as manqué une etape, lorsque tu es loggé, il faut communiquer au server ftp le port sur lequel tu veux recevoir les donnée de type DTP. Data Transfer Process, car jusqu'a maintenant ce n'etait que du Protocol Interpreter.

En clair, ce que tu dois faire c'est créer un socket sur un port quelconque. (1~65536 (2^16))

Bon comment l'utiliser avec le FTP, sa marche comme sa :

apres ta phase login USER et PASS il faut cette commande :

PORT IP1,IP2,IP3,IP4,PORT1,PORT2

pour IP1,IP2,IP3,IP4 c'est simple c'est ton ip :) (attention, chaque chiffre est ici separé par une virgule, ensuite PORT1 et PORT2 c'est autre chose,

imaginons que le port que tu as choisi est 1337 , sa marche comme sa :
tu divise ton port par 256, et tu en recupere l'entier, sa te donne ton PORT1, le reste de la division sera le PORT2 !
pour 1337 : 1337 / 256 = 5 Reste 57PORT1 5 PORT2 57

voila, apres, bah tu crée ton socket sur ce meme port, et tu attend reception de la part du server, grace a un on *:socklisten:{}

jespere t'avoir aidé, pour moi sa marche nikel
si j'ai un conseil a te donner, favorise NLST à LIST, sa sera plus lisible !
0
Bl4ckm4n Messages postés 4 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 14 août 2003
16 juil. 2003 à 19:31
Jte conseille de lire la rfc (en francais sur http://www.eisti.fr/res/res/rfc959/959tm.htm).
Pour la réponse a ta question c simple. Lors d'une connexion ftp il yen a en fait 2. La premiere sur le port 21 pr les commandes et une 2eme pr l'échange de fichiers ou le listing de répertoires. G la flemme de t'expliquer la mais en gros c ca. J'ai moi meme coder un client ftp en scripting mirc (pas tt a fait fini), jte le filerai stu veux (kan y sra fini)
0
cs_King007 Messages postés 3 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 19 mai 2005
8 août 2003 à 12:41
si tu peux me le passer bl4ckm4n j'ten remerci d'avance mon email : namo.chey@caramail.com
^_^
0
Bl4ckm4n Messages postés 4 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 14 août 2003
14 août 2003 à 20:55
il vaut bien mieux utiliser le mode passif avec la commande pasv. La réponse du serveur est alors l'ip (les 4 premiers nbs) et le port (les 2 derniers). Pour trouver le port, on convertit en hexadécimal le premier (par ex 10 = B) et le 2eme. si par exemple on a AE et 2C on convertit en décimale AE2C et on a le port.
PS:
utiliser $base pr les conversions
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abhoryo Messages postés 28 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 29 août 2008
19 nov. 2005 à 15:01
2 ans après...

Salut, j'ai déjà fait et terminé ce genre de script. Surtout
télécharger depuis IRC sur FTP. J'ai meme fait un systeme de fichier
coupés qui se réassemble tout seul chez celui qui download.(spécial
pour Free et autre) Bref venons en au fait. le protocole irc de dcc et
de ftp sont presque compatible mais pas totalement. En gros ca va
téléchargé sans problème j'usqu'a 99,9% du fichier après ca coupe.
Pourquoi ? tout simplement que le protocol FTP dis que c'est terminé en
meme temps que d'envoyer le dernier paquet de données. donc sur irc le
download coupe avant l'obtention du dernier paquet. Seule solution qui
est bof, c'est de grossir légérement ton fichier et là ca sera bon.



Voila ++
0