Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> php fsockopen ftp 
:(
    Опции темы
xXvladXx
Дата 24.8.2008, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бездарь
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 9.3.2008

Репутация: нет
Всего: 1



Привет, пишу фтп клиент вроде все ок, но команда LIST не получает нужного ответа, тупо виснет
Код

<?php
$host='ftp.host.com';
$user='user';
$pass='pass';
$com=array('',"USER ".$user."\r\n","PASS ".$pass."\r\n","SYST\r\n","PWD\r\n","TYPE A\r\n","PASV\r\n","LIST\r\n");
$fp = fsockopen($host, 21, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
        foreach($com as $c){
                print $c;
                fwrite($fp, $c);
                print  fgets($fp, 128);
        }
}
fclose($fp);
?>



PM MAIL   Вверх
xXvladXx
Дата 24.8.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бездарь
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 9.3.2008

Репутация: нет
Всего: 1



так же интересно как сделать чтоб это все работало через socks
PM MAIL   Вверх
xXvladXx
Дата 25.8.2008, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бездарь
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 9.3.2008

Репутация: нет
Всего: 1



так с socks 5 разобрался, а вот с LIST никак((
PM MAIL   Вверх
Jema
Дата 23.12.2009, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 11.12.2003

Репутация: нет
Всего: нет



Ребята, спасайте
Тоже проблема с LIST
Кто сталкивался или разбирается - очень прошу помочь!

Команда LIST может давать 2 ответа:
125 Data Connection already open, transfer starting.
и
150 File status okay, about to open data connection.  FTP uses two ports: 21 for sending commands, and 20 for sending data. A status code of 150 indicates that the server is about to open a new connection on port 20 to send some data.
(это из документации).

Так вот, есть FTP сервера которые отвечают 125, а есть которые отвечают 150
Почему-то мой скрипт умеет работать только с теми - кто отвечает:
150 Opening ASCII mode data connection for file list
после этого я читаю данные из соединения для данных (открываю его заранее).
Когда же я получаю от сервера:
125 Data connection already open; Transfer starting.
226 Transfer complete.

Из соединенния для данных получаю пустой ответ.
Проблемы вижу две:
1) Почему сервер тут-же отвечает 226 Transfer complete. (все это получаю за один запрос ответа)
2) Почему из соединения для данных ничего не могу прочитать?

Немного кода
Отправка команд:
Код

            if($Cmd) if(!@fputs($this->CmdSocket, $Cmd . "\r\n")) {$Error = 'Connect lost'; return false;} 
            sleep(1); 
            if(!$Error = trim(@fread($this->CmdSocket, 4096))) {$Error = 'No answer'; return false;}
            return substr($Error,0,3)


Перед командой LIST создаю соединение на основании ответа команды PASV
227 Entering Passive Mode (2хх,1хх,1хх,1хх,4,65).

После ответа LIST
125 Data connection already open; Transfer starting.
226 Transfer complete.

Пытаюсь читать - пусто.
Думал, может сервер отдает, а скрипт не успевает прочитать.
Пробовал перед LIST в отдельном потоке слушать порт - тишина - ничего нет.

Куда копать??? Обычный ФТП-клиент нормально заходит на сервер =(

PM MAIL   Вверх
awdev
Дата 5.1.2010, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 22.11.2009

Репутация: нет
Всего: 1



А какой порт вы слушаете ? 4*256+65 ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1018 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.