Evos
Messages postés5Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention19 août 2003
-
2 avril 2003 à 17:12
abhoryo
Messages postés28Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention29 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 :) )
cs_BadGOne
Messages postés15Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention23 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 !
Bl4ckm4n
Messages postés4Date d'inscriptionjeudi 6 février 2003StatutMembreDernière intervention14 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)
Bl4ckm4n
Messages postés4Date d'inscriptionjeudi 6 février 2003StatutMembreDernière intervention14 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
abhoryo
Messages postés28Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention29 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.