特别是对于Twisted,我希望能够确定我连接的服务器是否支持主动或被动模式。请参阅API。
如果有人可以在FTP协议中解释或举例说明如何确定服务器是否支持主动或被动模式。
答案 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.