2015-09-13 1 views
0

Je suis en train de télécharger un fichier en Python à un serveur FTP FileZilla à ftp.scratso.com, mais je continue à obtenir cette erreur:Python ftplib pas vous connecter au serveur FileZilla

Traceback (most recent call last): 
File "PythianRealms.py", line 2332, in <module> 
    ftp = ftplib.FTP("ftp.scratso.com", "PythianRealms", "password") 
File "C:\Python32\lib\ftplib.py", line 115, in __init__ 
    self.login(user, passwd, acct) 
File "C:\Python32\lib\ftplib.py", line 400, in login 
    resp = self.sendcmd('USER ' + user) 
File "C:\Python32\lib\ftplib.py", line 255, in sendcmd 
    return self.getresp() 
File "C:\Python32\lib\ftplib.py", line 230, in getresp 
    raise error_proto(resp) 
ftplib.error_proto: written by Tim Kosse ([email protected]) 

J'ai essayé de chercher des solutions à cela, mais je n'ai pas trouvé ce problème se produire ailleurs.

Le code est ce (mot de passe changé):

ftp = ftplib.FTP("ftp.scratso.com", "PythianRealms", "password") 
mapsock = urllib.request.urlopen("http://92.234.196.233/launcher-version.txt") 
mapnum = str(mapsock.read()).split("'")[1] 
mapsock.close() 
f = open("tempmap.txt", "rb") 
ftp.storbinary("STOR "+mapnum+".prm", f) 
f.close() 
ftp.quit() 

Toute aide serait appréciée.

Merci.

Edit: Dans le journal du serveur, il indique:

(000185)13/09/2015 11:47:38 - (not logged in) (92.234.196.233)> 220 FileZilla Server version 0.9.41 beta written by Tim Kosse ([email protected]) Please visit http://sourceforg 
(000185)13/09/2015 11:47:38 - (not logged in) (92.234.196.233)> USER PythianRealms 
(000185)13/09/2015 11:47:38 - (not logged in) (92.234.196.233)> 331 Password required for pythianrealms 

Répondre

1

Le serveur renvoie le message de bienvenue suivant:

220 FileZilla Server version 0.9.41 beta\r 
written by Tim Kosse ([email protected])\r 
Please visit http://sourceforg\r\n 

Ceci est un message d'accueil très étrange, car il est type de multi-ligne multi-ligne mais pas correcte. Les lignes sont délimitées par \ r seulement au lieu de \ r \ n et ne suivent pas la norme utilisée pour une réponse multi-ligne FTP, c'est-à-dire que la première ligne devrait être "220 -...." et la dernière ligne " 220 ... ".

Bien que je ne puisse pas voir une définition claire des caractères autorisés dans une seule ligne de la réponse dans RFC 959 le texte est généralement défini pour ne pas inclure de caractères de contrôle comme \ r à l'exception de la fin de ligne. Il n'est donc pas étonnant que ftplib ne puisse pas gérer correctement cette étrange réponse.

+0

J'ai ajouté le journal du serveur à la question, car le journal l'affiche «220». De plus, j'ai trouvé un paramètre de configuration qui me permet de changer le "message de bienvenue", mais je ne sais pas quoi en faire. – Scratso

+0

Aussi, je ne l'ai pas écrit, c'est un serveur [FileZilla] (https://filezilla-project.org/). – Scratso

+0

@Scratso: vous avez raison, mais la réponse du serveur est étrange. Je vous recommande de regarder la configuration du serveur, quelque chose doit être faux avec elle. –