Ruby NET :: FTP无法解析正确的IP

时间:2012-10-12 13:14:37

标签: ruby ftps net-ftp

我正在尝试使用以下方式连接到FTP服务器:

ftp = Net::FTPFXPTLS.new
ftp.passive=true
ftp.debug_mode=true
ftp.connect('200.111.111.11',21)
ftp.login('Username','Pass')
ftp.chdir('inbound')
ftp.putbinaryfile("./#{filename}", "/#{filename}")
ftp.close()

出于本示例的目的,200.111.111.11是正确的IP,10.1.1.1是假IP。

当我通过FTP客户端连接时,如发送我连接正常,一切正常,但在成绩单中说明:

Cmd: PASV
227: Entering Passive Mode (10,1,1,1,47,79).
Fixing bogus PASV data address from 10.1.1.1:12111 to 200.111.111.11:12111.

然后当它尝试通过ruby脚本连接时:

get: 425 Failed to establish connection.

当它尝试执行任何操作(如LIST或STOR)时,因为PASV命令始终返回10.1.1.1:12111。

那么无论如何都要确保PASV命令使用200.111.111.11而不是发送回它的内容?

1 个答案:

答案 0 :(得分:1)

这似乎更像宝石的问题,有一个解决方案,但需要花一点时间来实现。为了节省时间,我们只需将协议切换为使用SFTP即可完美运行。 (切换服务器和代码)