FTP检测是否启用了主动或被动模式

时间:2010-08-25 19:40:14

标签: python ftp twisted

特别是对于Twisted,我希望能够确定我连接的服务器是否支持主动或被动模式。请参阅API

如果有人可以在FTP协议中解释或举例说明如何确定服务器是否支持主动或被动模式。

1 个答案:

答案 0 :(得分:4)

通过向服务器发出PASV命令来启用被动模式。如果它在发出该命令时响应错误代码(应该是500 Unknown command),那么您就知道它不受支持。如果它以227 Entering Passive Mode响应,那么您就知道支持被动。

使用命令行telnet和FTP命令的示例:

% telnet ftp.mozilla.org 21
Trying 63.245.208.138...
Connected to dm-ftp01.mozilla.org.
Escape character is '^]'.
220-  [greeting omitted]
USER anonymous
331 Please specify the password.
PASS jathanism@
230-  [banner omitted]
230 Login successful.

良好的命令(支持被动模式):

PASV
227 Entering Passive Mode (63,245,208,138,202,53)

错误命令(抛出500错误):

FART
500 Unknown command.