有没有办法判断Java Web程序中FTP服务器是主动还是被动?

时间:2019-05-23 00:41:06

标签: java ftp apache-commons-net

我正在使用Apache-Commons-Net库。

我想知道FTP服务器是主动模式还是被动模式。

Apache-Commons-Net库中是否有类似的方法?

({GetDataConnectionMode()是一种方法,可以告诉您使用Java连接后的连接模式。我想先检查一下Maud)

private FTPClient ftp;

// the code I want
if(active){
  ftp.enterLocalActiveMode();
}else{
  ftp.enterLocalPassiveMode();
}

// Apply active mode or passive mode to the environment of the server for oneself

1 个答案:

答案 0 :(得分:0)

正如@Erwin所说,服务器未处于主动或被动模式。服务器通常同时支持两种模式。

您需要使用的一种模式,通常取决于您与服务器之间的网络的配置,而不取决于服务器上的某些“交换机”。几乎没有任何方法可以检测到这一点。

您所能做的就是尝试一种模式,如果第一种模式失败,则退回到另一种模式。通常,您应该从被动模式开始,因为这种模式会更频繁地工作。

也请阅读我关于FTP connection modes的文章以及他们所需的网络配置,以了解这是什么。