FTP 检测是否启用了主动或被动模式
关于Twisted,我想知道我连接的服务器是否支持主动模式或被动模式。可以参考这个API。
如果有人能解释一下,或者给个例子,说明在FTP协议中,怎么判断服务器是否支持主动模式或被动模式,那就太好了。
1 个回答
5
被动模式是通过向服务器发送 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.