IRC et FTP ^^ ( Lister ? )

Messages postés
5
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
19 août 2003
- - Dernière réponse : 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 :) )
Afficher la suite 

5 réponses

Messages postés
15
Date d'inscription
mercredi 29 janvier 2003
Statut
Membre
Dernière intervention
23 mai 2005
0
Merci
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 !
Commenter la réponse de cs_BadGOne
Messages postés
4
Date d'inscription
jeudi 6 février 2003
Statut
Membre
Dernière intervention
14 août 2003
0
Merci
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)
Commenter la réponse de Bl4ckm4n
Messages postés
3
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
19 mai 2005
0
Merci
si tu peux me le passer bl4ckm4n j'ten remerci d'avance mon email : namo.chey@caramail.com
^_^
Commenter la réponse de cs_King007
Messages postés
4
Date d'inscription
jeudi 6 février 2003
Statut
Membre
Dernière intervention
14 août 2003
0
Merci
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
Commenter la réponse de Bl4ckm4n
Messages postés
28
Date d'inscription
dimanche 25 mai 2003
Statut
Membre
Dernière intervention
29 août 2008
0
Merci
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 ++
Commenter la réponse de abhoryo