在php中通过密码保护的代理连接到FTP服务器

时间:2015-12-03 16:32:13

标签: php proxy ftp

我尝试使用PHP FTP功能通过受密码保护的HTTP squid代理连接到受密码保护的ftp服务器。 这些是我的变量:

$ftp_server = "abc.def.com";
$ftp_port = 22;
$ftp_user = "uvw";
$ftp_pass = "xyz";
$proxy_server = "www-cache";
$proxy_port = "8080";
$proxy_user = "qwe";
$proxy_pass = "rty";

这是我尝试过的:

$path = "test.txt";
$chronosPath = "webroot/files/uploads/";

echo "Experiment 1\n";

$conn = ftp_connect($proxy_user.":".$proxy_pass."@".$proxy_server, $proxy_port);
$login = ftp_login($conn, $ftp_user."@".$ftp_server, $ftp_pass);

var_dump($conn);
var_dump($login);


echo "Experiment 2\n";

$stream_options = array(
    'ftp' => array(
        'proxy' => $proxy_user.":".$proxy_pass."@".$proxy_server.":".$proxy_port
    )
);
$context = stream_context_create($stream_options);
$file = fopen("ftp://".$ftp_user.":".$ftp_pass."@".$ftp_server."/test.txt", "r", false, $context);
echo fread($file,20);

echo "Experiment 3\n";

$curl = curl_init();

$file = fopen($chronosPath.$path, 'w');
curl_setopt_array($curl, array(
    CURLOPT_URL => "ftp://".$ftp_user.":".$ftp_pass."@".$ftp_server.":".$ftp_port."/".$path,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_FILE => $file,
    CURLOPT_PROXY => $proxy_server,
    CURLOPT_PROXYPORT => $proxy_port,
    CURLOPT_PROXYUSERPWD => $proxy_user.":".$proxy_pass,
));
curl_exec($curl);
curl_close($curl);
fclose($file);

这就是我得到的:

  

实验1

     

警告错误:ftp_connect():php_network_getaddresses:   getaddrinfo失败了:Beim Datenbankaufruf ist ein nicht behebbarer   Fehler aufgetreten。 (德语为"数据库调用结果   [path]

中无法解决的错误      

警告错误:ftp_login()要求参数1为resource,boolean   在[路径]中给出

     

布尔(假)

     

NULL

     

实验2警告错误:fopen():php_network_getaddresses:getaddrinfo失败:未知主机。在[路径]

     

警告错误:fopen(ftp://...@tascloud.de/test.txt):无法打开   stream:php_network_getaddresses:getaddrinfo failed:Unknown Host。   在[路径]

     

警告错误:fread()要求参数1为resource,boolean   在[路径]中给出

     

实验3

实验3导致创建一个包含鱿鱼错误页面的html源代码的txt文件

  

访问被拒绝。

     

访问控制配置可防止您的请求被允许   此时。如果您有这种感觉,请与您的服务提供商联系   不正确。

     

您的缓存管理员是root @ localhost。

0 个答案:

没有答案