php可以忽略ftp数据通道的建议IP并直接转到服务器吗?

jbr*_*ahy 3 php ftp

我已经成功地从客户端下载了一段远程文件一段时间了,由于某种原因,他们的服务器现在正在返回私有IP.FileZilla非常聪明,可以使用服务器地址.

Status: Server sent passive reply with unroutable address. Using server address instead.
Run Code Online (Sandbox Code Playgroud)

我没有看到使用php的内置ftp代码执行此操作的方法.

    $conn_id = ftp_connect($ftp_server);
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

    ftp_pasv($conn_id, TRUE);

    if (ftp_get($conn_id, $downloaded_file, $server_file, FTP_BINARY)) {

        printf("Successfully downloaded %s\n", $downloaded_file);

    } else {
        printf("There was a problem downloading %s\n %s\n", 
              $server_file, 
              print_r(error_get_last(), TRUE)
        );
        exit(1);
    }

    ftp_close($conn_id);
Run Code Online (Sandbox Code Playgroud)

有没有办法让PHP忽略数据通道建议的IP并使用服务器的IP?

Jer*_*ley 6

从5.6.18/7.0.2开始,可以使用以下选项:

ftp_set_option($conn_id, FTP_USEPASVADDRESS, false);
Run Code Online (Sandbox Code Playgroud)

相关提交