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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> php ftp class via socks 
V
    Опции темы
console
  Дата 23.10.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

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



Не подскажите готовый php класс для работы с ftp через socks ?


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
awers
Дата 23.10.2008, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

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



PM MAIL WWW ICQ Skype   Вверх
console
Дата 23.10.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

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



И где там возможность работать с соксами? socks !== sockets  smile 


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
console
Дата 23.10.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

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



Там их не валом, ни одного не нашел... Есть класс для работы с SOCKS5, но у меня даж не получилось подключиться к соксу, ошибку выдает
Warning: unpack(): Type C: not enough input, need 1, have 0


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
teroni
Дата 24.10.2008, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

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



В теории это конечно возможно. Когда-то я работал с соксами5 в качестве http прокси.
Упрощенно это выглядело так.
Код

$fp = fsockopen($socks5_host, $socks5_port, $errno, $errstr, $timeout);
$request = pack("C3", 5, 1, 0);
fwrite($fp, $request);
$response = fgets($fp, 3);
$answer   = unpack("Cver/Cmethod", $response);
//print_r($answer);

$ip = gethostbyname($host);
if (preg_match("/(\d+)\.(\d+)\.(\d+)\.(\d+)/", $ip, $matches))
    $ipval = pack("C4", $matches[1], $matches[2], $matches[3], $matches[4]);
$request  = pack("C4", 0x05, 0x01, 0x00, 0x01);
$request .= $ipval; 
$request .= pack("n", $port); 
fwrite($fp, $request);
$response = fgets($fp, 11);
$answer   = unpack("Cver/CREP", substr($response, 0, 2));
//print_r($answer);
if ($answer["REP"] != 0)
   exit("Proxy have rejected the connection. Reason: code error={$answer['REP']}");

// Дальше запрос
$request = 'http request here!!!!';
fwrite($fp, $request);
while (!feof($fp))
   {
   $line = fgets($fp, 4096);
   }
echo $line;
fclose($fp);

Соксу должно быть всё равно, http запросы слать дальше, или ftp. Осталось только научиться их правильно формировать. 
А для этого берем http://www.phpclasses.org/browse/file/945.html и смотрим как там всё устроено.

По идее, если тот класс работает в качестве клиента (у меня кажется работал), и работает мой вышеприведенный код (у меня 100% работал, но тут я его немного изменил, поэтому не гарантирую), то можно просто найти место, где в классе делается fsockopen и заменить его на мою конструкцию с соксами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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