Python 在ftp活动模式下列出文件

Python 在ftp活动模式下列出文件,python,ftp,scapy,Python,Ftp,Scapy,我正在尝试使用scapy捕获ftp数据包。当我键入ftp命令“ls”时,我需要捕获ftp文件列表数据包 我在网上搜索发现,文件列表应该在被动模式下完成,但这意味着服务器端口将发生变化;我在scapy中使用21来识别其他数据包中的ftp数据包,而不是21 有没有办法在活动模式下列出文件?或者,当服务器端口是一个变量“not 21”时,用另一种方法在scapy中捕获列表包 提前感谢。如果您完全控制FTP连接,则可以使用被动和主动模式检索目录列表 虽然使用主动模式,服务器必须能够连接到您的机器,但由于

我正在尝试使用scapy捕获ftp数据包。当我键入ftp命令“ls”时,我需要捕获ftp文件列表数据包

我在网上搜索发现,文件列表应该在被动模式下完成,但这意味着服务器端口将发生变化;我在scapy中使用21来识别其他数据包中的ftp数据包,而不是21

有没有办法在活动模式下列出文件?或者,当服务器端口是一个变量“not 21”时,用另一种方法在scapy中捕获列表包


提前感谢。

如果您完全控制FTP连接,则可以使用被动和主动模式检索目录列表

虽然使用主动模式,服务器必须能够连接到您的机器,但由于无处不在的防火墙和NAT,这通常是不可能的。请阅读我的文章

在活动模式下,服务器应将传出端口20用于目录列表。不过,如果涉及防火墙/NAT,那么客户端(和Scapy)将看到的真正端口可能会完全不同。因此,这最终可能无济于事



在被动模式下,您必须检查主(控制)连接,检测将用于列表/数据连接的端口,并开始检查该端口。Scapy甚至可能内置了该功能(或其中的一部分),我对Scapy不太熟悉。

我的意思是,当我连接到ftp服务器时,在键入“ls”之前,是否总是必须键入“pass”?因为否则它会给我这个错误:“FTP提示符上有500个非法端口命令”。通常,我希望使用Python中的Scapy捕获从服务器发送时包含文件列表的数据包。但我无法在python中设置检测此数据包的条件,因为它的端口号不是21,因为连接处于被动模式。我是客户端,可以使用主动或被动模式连接。我需要捕获从服务器发送的ftp列表数据包scrapy@Cukic0d谢谢更正。