2016-05-16 10 views
1

Wie kann ich überprüfen, ob ein FTP-Server TLS zulässt, wenn ich mich mit ftplib verbinde? Ich habe eine einfache Dokumentation zur Verwendung von TLS gefunden, aber keine Lösung zur Überprüfung. Mein Skript sollte in beide Richtungen verbinden, aber wenn möglich TLS verwenden.Wie überprüft man, ob FTP-Server TLS-Unterstützung in Python bietet?

Also verbinde ich mich einfach mit TLS und wenn es scheitert, mache ich es ohne? Ich bin mir sicher, dass es einen besseren Weg geben muss.

Vielen Dank für Ihre Hilfe.

Antwort

0
  • Anruf FTP_TLS.auth, überprüfen, ob es wirft oder nicht.

  • Anruf FTP_TLS.login mit secure=False.

Wenn der Server TLS unterstützt, wird die .auth Verschlüsselung aktivieren und die .login wird weiter zu verwenden. Wenn der Server dies nicht unterstützt, wird die .login unverschlüsselt fortgesetzt.


Um explizit zu überprüfen, können Sie auch voidcmd('FEAT') verwenden und suchen nach AUTH TLS (oder AUTH SSL) in der Antwort.

Aber es ist nichts falsch zu versuchen AUTH TLS/AUTH SSL (was die .auth tut) sofort.

+0

Die Dokumente erwähnen nicht "secure = False" https://docs.python.org/2.7/library/ftplib.html. Ist das entkräftet? – JasonTS

+0

Während es nicht dokumentiert ist, ist es da: https://hg.python.org/cpython/file/2.7/Lib/ftplib.py#l667. Und mit 'secure = False' ist es genauso wie mit dem dokumentierten 'FTP.login (self, user = '', passwd = '', acct = '')'. –