Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как с помощью сокета получить файл с ФТП ?
 
 автор: dima2207   (14.02.2008 в 04:52)   письмо автору
 
 

Подскажите как это можно сделать ?
на примере для ХТТП протокола :

<?php
set_time_limit
(0);

$host "space14.nash.net.ua:2121";
$path "/36/14082/faceless.avi";

if ( !
$buffer getdata($host$path) ) {
    exit(
"Ошибка");
                  



// функция получения страницы с удаленного хоста.
function getdata($host$path)
{
     
$buffer true;
     
$fp = @fsockopen("tcp://".$host80$errno$errstr10);
     if (!
$fp) {
         return 
false;
     } else {
         
$out  "GET $path HTTP/1.1\r\n";
         
$out .= "Host: $host\r\n";
         
$out .= "Referer: $host$path\r\n";
         
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
         
$out .= "Connection: Close\r\n";
         
$out .= "\r\n";

         
fwrite($fp$out);
         while (!
feof($fp)) {
             
$buffer .= fgets($fp1024);
         }
         
fclose($fp);
     }
     return 
$buffer;
}
?>

   
 
 автор: mihdan   (14.02.2008 в 10:51)   письмо автору
 
   для: dima2207   (14.02.2008 в 04:52)
 

Если вы хотите закачать файл с FTP зачем вас сокет и HTTP, используйте функции для работы с FTP

   
 
 автор: mechanic   (14.02.2008 в 13:12)   письмо автору
 
   для: mihdan   (14.02.2008 в 10:51)
 

он сказал что код этот "на примере ХТТП"
что то мне подсказывает, что в случае с ФТП будет не один шаг "запрос-ответ"
если не устраивают встроенные ф-ции работы с ФТП, а требуется именно через сокеты, то придется нарыть словарь команд для общения по фтп
типа открываешь сокет, пишешь туда "USER vasya", читаешь ответ "Password required for user vasya", пишешь "PASS myBIGpassword" и т.д...

   
 
 автор: cheops   (14.02.2008 в 13:46)   письмо автору
 
   для: dima2207   (14.02.2008 в 04:52)
 

При доступе к FTP следует использовать протокол FTP, а не HTTP.

PS Кстати, у вас порт указан 2121, а вы пытаетесь установить соеднение по 80 порту.

   
 
 автор: mechanic   (14.02.2008 в 15:08)   письмо автору
 
   для: cheops   (14.02.2008 в 13:46)
 

в переменной $host вообще порта не должно быть, только IP или DNS имя сервера

   
 
 автор: dima2207   (14.02.2008 в 23:14)   письмо автору
 
   для: mechanic   (14.02.2008 в 15:08)
 

Я просто уже и незнаю что делать .
Почему в браузере нормально открывает страницу , а из скрипта нехочет :

<?php 
// Определяем переменные 
$host='ftp://space14.nash.net.ua';
  
$connect ftp_connect($host,'2121','80');
  if(!
$connect)
  {
    echo(
"Ошибка соединения");
    exit;
  }
  else
  {
    echo(
"Соединение установлено");  
  }
?>


Warning: ftp_connect() [function.ftp-connect]: php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен. in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\cron1.php on line 5
Ошибка соединения

   
 
 автор: Unkind   (14.02.2008 в 23:49)   письмо автору
 
   для: dima2207   (14.02.2008 в 23:14)
 

В хосте не нужен префикс "ftp://"

   
 
 автор: dima2207   (14.02.2008 в 23:59)   письмо автору
 
   для: Unkind   (14.02.2008 в 23:49)
 

Unkind , нет некатит ! итак итак ошибку выдает !

   
 
 автор: dima2207   (15.02.2008 в 00:47)   письмо автору
 
   для: dima2207   (14.02.2008 в 23:59)
 

В чем-же ошибка ?

   
 
 автор: Unkind   (15.02.2008 в 01:18)   письмо автору
 
   для: dima2207   (14.02.2008 в 23:59)
 

> итак итак ошибку выдает !
Да ну? У Вас установлен брандмауэр (firewall)? Выполняются ли другие запросы на удаленные хосты корректно?

<?php
echo gethostbyname('example.com');
?>

   
 
 автор: mihdan   (15.02.2008 в 01:21)   письмо автору
 
   для: dima2207   (14.02.2008 в 23:14)
 

Проверьте брендмаузер - у меня работает!

   
 
 автор: dima2207   (15.02.2008 в 02:30)   письмо автору
 
   для: mihdan   (15.02.2008 в 01:21)
 

Ага , спасибо ! Я просто недавно переехал с винды на FreeBSD и пока еще немогу привыкнуть !

   
 
 автор: dima2207   (15.02.2008 в 04:36)   письмо автору
 
   для: dima2207   (15.02.2008 в 02:30)
 

Чудеса какието , я уже и фаервол отключил (ipfw flush):
Fatal error: Call to undefined function ftp_connect() in /data/www/apache22/data/cron1.php on line 9
Это-ж как я понимаю встроеная функция !
Куда -ж подевалась функция ?
в пхп.ини у меня прописано - disable_functions =
ничего непонимаю !!!
---------------------------------------------------------------------------------------
Все , разобрался ! расширение не было подключено !

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования