Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3907 connectés 

 


Dernière réponse
Sujet : [FTP] Commande PORT
Benzo29 Merci petoulachi pour ton aide mais le problème venez de ma boite...
Le chemin de destination des fichiers (qui est sur le serveur interne) a changé, sans que personne ne soit averti, et surtout pas mon script...
Après l'erreur que me retournait mon script : "Permission denied" était pas très explicite  [:tinostar] Et on avait tous penché pour un problème coté serveur ftp.
 
Bref, pb résolu... encore merci :)
 
ps : Ca reste étrange pour le screenshot d'en haut quand même  :o

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Benzo29 Merci petoulachi pour ton aide mais le problème venez de ma boite...
Le chemin de destination des fichiers (qui est sur le serveur interne) a changé, sans que personne ne soit averti, et surtout pas mon script...
Après l'erreur que me retournait mon script : "Permission denied" était pas très explicite  [:tinostar] Et on avait tous penché pour un problème coté serveur ftp.
 
Bref, pb résolu... encore merci :)
 
ps : Ca reste étrange pour le screenshot d'en haut quand même  :o
petoulachi Vraiment bizarre... Tu as testé en faisant un ftp avec la commande DOS voir ce que ça donnait ?
Benzo29 Mouarf :)  
oui, j'initialise l'objet avant, (dans une autre classe :o) mais je pense franchement pas que ca vienne du code, ca fait 6 mois que je l'utilise et c'est seulement maintenant que ça plante...
 
la machine qui héberge le script : un pc sous windows (celui avec lequel je post ici :))
 
le serveur FTP voilà le mieux que je puisse te donner c'est le trace de FileZilla après une connexion :

Code :
  1. Etat : Connexion à 10.***.***.*** ...
  2. Etat : Connecté à 10.***.***.***. Attente du message d'accueil...
  3. Réponse : 220 DeltaNet ftp server (c) 1995 Chris Poole. 1.58 (04-Mar-97). S/N 193.
  4. Commande : USER ***
  5. Réponse : 331 Password required for ***.
  6. Commande : PASS ***
  7. Réponse : 230 User *** logged in.
  8. Commande : FEAT
  9. Réponse : 502 Command not known FEAT.
  10. Etat : Connecté
  11. Etat : Récupération de la liste de répertoires...
  12. Commande : PWD
  13. Réponse : 257 "/" is current directory
  14. Commande : PORT 10,0,0,1,5,165
  15. Réponse : 200 PORT command successful.
  16. Commande : TYPE A
  17. Réponse : 200 ASCII type selected.
  18. Commande : LIST
  19. Réponse : 150 LIST OK, opening ASCII mode data connection.
  20. Réponse : 226 Transfer complete.
  21. Etat : Succès du listage du répertoire


 
ce qui les sépare : je me connecte avec une liaison RTC et un vieux modem 33k (d'ou la complexité du code), et je suis donc en liaison direct avec le serveur Ftp...

petoulachi En effet je ne connais pas Python, mais bon ça revient au même.
Par contre tu fais un self.ftp.retrbinary, j'imagine qu'avant cela il y a forcement une initialisation de ton objet self.ftp non ?
 
De plus, il faudrait plus de détail sur la machine qui héberge le script, sur le serveur FTP, sur ce qui les sépare (équipements réseaux...). Tu as une heure pour rendre ta copie :D
Benzo29 Passif ou Actif, même combat :(
Benzo29 mmmh, ca marche qu'a moitié avec FileZilla, si, à la main en entrant les commandes, (les même que FileZilla utilise à priori) j'essai de télécharger un fichier ca ne marche pas (voir screenshot).
Pour mon script, c'est du Python, mais bon, il est composé d'une 10aine de classes différentes, un truc pas forcement facile à comprendre... Je te met un bout de code simplifié au cas ou tu connaisse la librairie ftplib de python...

Code :
  1. for file in files:
  2. fullname = os.path.join(localdir, file)
  3. # If file already exist, delete it
  4. if Fs.isFile(fullname):
  5.  Fs.deletePath(fullname)
  6. # Download file
  7.  self.ftp.retrbinary('RETR ' + file, open(fullname, 'ab'))


 
 
 
Je vais voir si le fait de passer en passif change quelquechose  :jap:

petoulachi Ton script est en quel langage ?
 
Sinon tu fais un téléchargement en actif, pourquoi pas en passif ?
 
Le principe de la commande PORT est assez simple :
A,B,C,D,X,Y
Tu envois ton IP (A,B,C,D), et deux nombres qui permettent de calculer le port sur lequel le serveur vient se connecter. Pour le calculer, on fait X*256 + Y (3311 dans ton cas).
 
Par contre c'est bizarre que ça marche avec filezilla et pas avec ton script. Tu peux le donner ?
Prems C'est le port utilisé pour la connexion, sur 2 octets.
Benzo29 A priori le problème viendrait de la commande PORT, si quelqun peut m'expliquer comment fonctionne cette commande ?
 
Je sais que pour PORT 10,0,0,1,12,239
10,0,0,1 correspond à l'adresse IP, mais le 12 et le 239  :??:
Benzo29 Alors, j'ai fait un petit script pour ma boite qui va se connecter sur différents serveur ftp (jusque la tout va bien), puis qui se place dans un répertoire, et qui ramene un fichier.
 
Ce matin je lance le script comme tout les matins, impossible de télécharger le moindre fichier.  :fou:  
Et de même sur tous les serveur ftp  :sweat:  
 
Pour voir d'ou ca vient je me connect manuellement avec FileZilla, j'essaye de télécharger un fichier avec du Drag&Drop et stupeur, ca fonctionne...
 
Pour aller plus loin, je décide de tapper à la main dans FileZilla les commandes nécessaires pour télécharger le même fichier, et la c'est le drame :  
 
http://img377.imageshack.us/img377/4642/bugftp5xp.gif  
 
 
 :heink:  
 
Si quelqu'un a déjà eu le problème ou a une petite idée  :hello:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)