как реализовать ftp протокол через socks или http прокси?

poiuyt1234

Новичок
как реализовать ftp протокол через socks или http прокси?

Нашел вот такой код для работы с ftp через curl:
PHP:
if (isset($_POST['Submit'])) {
    if (!empty($_FILES['upload']['name'])) {
        $ch = curl_init();
        $localfile = $_FILES['upload']['tmp_name'];
        $fp = fopen($localfile, 'r');
        curl_setopt($ch, CURLOPT_URL, 'ftp://ftp_login:[email protected]/'.$_FILES['upload']['name']);
        curl_setopt($ch, CURLOPT_UPLOAD, 1);
        curl_setopt($ch, CURLOPT_INFILE, $fp);
        curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
        curl_exec ($ch);
        $error_no = curl_errno($ch);
        curl_close ($ch);
        if ($error_no == 0) {
            $error = 'File uploaded succesfully.';
        }
        else {
            $error = 'File upload error.';
        }
    }
    else {
        $error = 'Please select a file.';
    }
}
Это без прокси.. но в curl можно задать прокси и тип прокси:
PHP:
curl_setopt($cUrl, CURLOPT_PROXY, $proxy); 
curl_setopt($cUrl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
меня интересует пройдет ли такая схема?
Как и можно ли решить мой вопрос?
 

dimagolov

Новичок
poiuyt1234,
1. отформатируй код по-людски
2. у тебя что конкретно не работает?
 

poiuyt1234

Новичок
неработает передача файла по ftp через socks или ftp прокси..
это вообще возможно?
Я проверял этот код без прокси. Работает. А с прокси нет.
 

DiMA

php.spb.ru
Команда форума
конечно же галочку "Отключить смайлики в этом сообщении" поставить сложно
 

dimagolov

Новичок
Я проверял этот код без прокси. Работает. А с прокси нет.
1. Просто с FTP клиента через эти прокси получается работать?
2. phpfaq.ru/debug "не работает" выражается в конкретных ошибках, которые происходят в процессе выполнения. что за ошибки?
 

poiuyt1234

Новичок
ошибка выдается проксисервером, что не возможно соеденится с ftp сервером..
 

poiuyt1234

Новичок
Может и не через curl. Мне надо заливать файлы по ftp через socks или http прокси. А curl привел так как там есть возможность задать прокси и его тип. А как еще решить эту задачу не знаю. Поэтому и спрашиваю.
 

DiMA

php.spb.ru
Команда форума
1. изучи соединение через сокс: яндекс - fsockopen php connect socks5 (это просто, там пример на пыхе есть)
2. позьми либу фпт с исходниками на пхп (pear)
3. в исходниках отлови вызов fsockopen (либа net, кажись), соединись с соксом, дайкоманду соксу установить соединие с фтп, верни открытый сокет фтп либе
4. фтп режим должен быть пассивным (или активным - разбирайся)... тока не голубым :) и кажись там нужно второе соединие на 20й порт устанавливать.

Если курл поддерживает сокст на фтп или иные готовые решения - заливай им. Не слушай советы. Разбираться всяко дольше.
 
Сверху