के साथ प्रोटोकॉल के उल्लंघन में हुआ था, मैं अजगर टीटीएल कनेक्शन के साथ एक अंतर्निहित टीएलएस कनेक्शन प्रोग्राम पर काम कर रहा हूं। मैंने कनेक्शन बनाने के लिए python-ftp-implicit-tls-connection-issue (आरजी ग्लैज और जुआन मोरेनो के उत्तरों सहित) में दिए गए समाधान की कोशिश की।ईओएफ पाइथन ftplib
58 server = FTP_ITLS()
59 server.connect(host="x.x.x.x", port=990)
60 server.login(user="user", passwd="******")
61 server.prot_p()
62
63 server.cwd("doc")
64 print(server.retrlines('LIST'))
65 # server.retrbinary('RETR contents.7z', open('contents.7z', 'wb').write)
66 server.quit()
मैं एक EOF त्रुटि मिली:
Traceback (most recent call last):
File "D:/Coding/test/itls.py", line 64, in <module>
print(server.retrlines('LIST'))
File "D:\Python\Python27\lib\ftplib.py", line 735, in retrlines
conn = self.transfercmd(cmd)
File "D:\Python\Python27\lib\ftplib.py", line 376, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "D:\Python\Python27\lib\ftplib.py", line 713, in ntransfercmd
server_hostname=self.host)
File "D:\Python\Python27\lib\ssl.py", line 352, in wrap_socket
_context=self)
File "D:\Python\Python27\lib\ssl.py", line 579, in __init__
self.do_handshake()
File "D:\Python\Python27\lib\ssl.py", line 808, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:590)
ऐसा लगता है के रूप में ftplib PROTOCOL_SSLv23
का उपयोग करता है लेकिन जब मैं इस तरह एफ़टीपी सर्वर में प्रवेश करने के बाद retrline
या retrbinary
फोन (FTP_ITLS
FTP_TLS
के उपवर्ग है) पायथन 2.7 में डिफ़ॉल्ट प्रोटोकॉल के रूप में, मैंने PROTOCOL_TLSv1, PROTOCOL_TLSv1_1 और PROTOCOL_TLSv1_2 की कोशिश की, लेकिन उनमें से कोई भी काम नहीं किया। और मैंने ntransfercmd
और auth
को ओवरराइड करने का प्रयास किया, या ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1)
सेट किया क्योंकि स्टीफन उललिच ने connect-to-ftp-tls-1-2-server-with-ftplib पर सवाल उठाया, लेकिन त्रुटि कभी गायब नहीं हुई। तब मैं क्या कर सकता हूँ? धन्यवाद।