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

Форум PHP

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

 

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

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

тема: ICQ протокол. Передача файла.
 
 автор: STEVER   (15.07.2007 в 14:10)   письмо автору
 
 

Перерыл много классов, но не в одном не была реализована передача файлов.
Мне кажется это очень нужная вешь, может кто - нибудь сталкивался с данным вопросом?

   
 
 автор: Proger   (15.07.2007 в 19:50)   письмо автору
 
   для: STEVER   (15.07.2007 в 14:10)
 

А сам класс для работы с ICQ не подбросите? Ботика желательно!!!

   
 
 автор: STEVER   (15.07.2007 в 19:55)   письмо автору
 
   для: Proger   (15.07.2007 в 19:50)
 

Да их полно. Вот один из них. Работоспособность мной проверена.
Подключение класса:

$admin="8359812";         //ася админа :)
$send2me=$admin;          // туда пересылаются сообщения
$icq_number="11111111";   // ася бота
$icq_pass="CoolPass";     //пароль бота
$icq_std_status="ONLINE"; //станд.статус

include "c99phpicq.php";
set_time_limit (0);      // бесконечное время выполнения
ignore_user_abort(true);
$icq = new ICQclient($icq_number,$icq_pass);
$icq->errorstream = false;
$icq->dbgstream = false;
$icq->connect();
$icq->setstatus($icq_std_status);
$icq->login();

while ($icq->socket)
{
 $icq->listen();
 if ($icq->ismessage())
 {
  $uin = $icq->inLastVar["uin"];
  $text = $icq->inLastVar["text"];
  $mid = md5($icq->inLastVar["mid"]);
  $text = trim($text);
  $cmd = explode(" ",$text);
  $cmd[0] = strtolower($cmd[0]);
  $cmd[1] = strtolower($cmd[1]);
  if ($text == "!exit"  && $uin==$admin) {exit;}
  elseif ($text == "!exit" || $text == "!send") { $icq->message_send($uin,"Access denied!"); }
  elseif ($cmd[0] == "!send" && $uin == $admin) {
    $text2send = $cmd[2];
    for($i=2; $i<=count($cmd); $i++) $text2send.=$cmd[$i];
    $icq->message_send( $cmd[1], $cmd[2] );
  }
  else {
       $icq->message_send($uin,"Внимание! На данном ICQ установлен бот :) Все сообщения перенаправляются в $send2me (во всяком случае, должны туды переправляться :))");
       $icq->message_send($send2me,"--пришло с номера $uin: $text");

       }
     }
  }

   
 
 автор: Unkind   (15.07.2007 в 20:00)   письмо автору
 
   для: STEVER   (15.07.2007 в 19:55)
 

Насколько я понимаю, передача файла не имеет отношение к протоколу ICQ.

   
 
 автор: STEVER   (15.07.2007 в 20:27)   письмо автору
 
   для: Unkind   (15.07.2007 в 20:00)
 

возможно, но тогда как они передаются через клиент? через другой протокол? но он всеравно проходит через сервер!

   
 
 автор: Unkind   (15.07.2007 в 21:03)   письмо автору
 
   для: STEVER   (15.07.2007 в 20:27)
 

но он всеравно проходит через сервер!
С ума сойти. Вот именно этого не происходит точно.

   
 
 автор: STEVER   (16.07.2007 в 14:42)   письмо автору
 
   для: Unkind   (15.07.2007 в 21:03)
 

прокси сервер. я не в инете, а мне с инета файлы шлют. и как они тогда по твоему доходят?

   
 
 автор: Unkind   (16.07.2007 в 16:12)   письмо автору
 
   для: STEVER   (16.07.2007 в 14:42)
 

И что, когда Вы уже в онлайне тот человек, что посылал файл уже сам отключился от сети?
И при чем тут прокси вообще?

   
 
 автор: STEVER   (16.07.2007 в 20:31)   письмо автору
 
   для: Unkind   (16.07.2007 в 16:12)
 

Интернет у меня через VPN соединение, т.е. не включая впн доступ есть только в локальную сеть, из инета ничего качать не могу, но файлы через клиента аськи передаются в инет легко, как это объяснить?

   
 
 автор: Trianon   (16.07.2007 в 20:36)   письмо автору
 
   для: STEVER   (16.07.2007 в 20:31)
 

VPN-соединение - само по себе - это не прокси, а еще один (виртуальный) сетевой адаптер. Со своим IP, со своими строками в таблице маршрутизации и т.д.

И если маршруты для аськи у Вас проложены в обход VPN, ничего удивительного, что она работает и без инета. (Если инетом называть VPN)

   
 
 автор: STEVER   (16.07.2007 в 23:27)   письмо автору
 
   для: Trianon   (16.07.2007 в 20:36)
 

Маршруты проложены через прокси сервер аски от провайдера.

Возвращаясь к вопросу о передаче файлов, тогда и для них свой маршрут? если они к аське не относятся?

   
 
 автор: Trianon   (17.07.2007 в 00:10)   письмо автору
 
   для: STEVER   (16.07.2007 в 23:27)
 

Маршрут определяется адресом назначения.
Собственно, если статических маршрутов не прописано (что бывает в большинстве случаев)
то для всех внешних серверов маршрут один - через шлюз VPN-канала.
А если провайедр проксит аську - тут всё сложнее.
Обычно аська для обмена файлами создает собственное соединение клиент-клиент, безо всяких серверов. Точнее сервером в этом соединении выступает клиент противной стороны. Соответственно, этот маршрут будет прокситься лишь в том случае, если прокси провайдера будет влезать внутрь протокола клиент-клиент, подменяя адреса прямых дейтаграмм. О таких извращениях (несмотря на то, что теоретически они возможны) я ни разу не слышал.
Обычно канал файлового обмена через прокси не пропускается (SOCKS-прокси не в счет. там завернут в тунель всё что угодно.) И соответственно файловый обмен останется на уровне маршрутов VPN.

Это достаточно общие рассуждения. Чтобы делать детальные выводы, нужно четко себе представлять задачу и методику работы каждого из серверов.

   
 
 автор: STEVER   (17.07.2007 в 20:28)   письмо автору
 
   для: Trianon   (17.07.2007 в 00:10)
 

2 обзац пеечитывал 3 раза.
Если прокси аськи меняет адреса для файлов, значит оно что то знает? значит файлы таки входят в протокол аськи, или нет?

   
 
 автор: Sobachka   (15.07.2007 в 21:52)   письмо автору
 
   для: Unkind   (15.07.2007 в 20:00)
 

>Насколько я понимаю, передача файла не имеет отношение к протоколу ICQ.
в точку...
там p2p коннект скорее всего :)

   
 
 автор: STEVER   (15.07.2007 в 22:51)   письмо автору
 
   для: Sobachka   (15.07.2007 в 21:52)
 

Может я не силен в протоколах, но как тогда работает передача файлов, если у меня аська через прокси работает?

   
 
 автор: Sobachka   (16.07.2007 в 00:54)   письмо автору
 
   для: STEVER   (15.07.2007 в 22:51)
 

>Может я не силен в протоколах, но как тогда работает передача файлов, если у меня аська через прокси работает?


незнаю...
провёл специально тест... смотрите аттач :)
http://sobachka.com.ua/test.gif

   
 
 автор: STEVER   (16.07.2007 в 14:40)   письмо автору
 
   для: Sobachka   (16.07.2007 в 00:54)
 

"Изображение содержит ошибки". Это что скрипт был?

   
 
 автор: Trianon   (16.07.2007 в 11:43)   письмо автору
 
   для: STEVER   (15.07.2007 в 22:51)
 

Обычно, в таких ситуациях - никак ))

   
 
 автор: Proger   (15.07.2007 в 21:01)   письмо автору
 
   для: STEVER   (15.07.2007 в 19:55)
 

А файлик самого класса не подкините?


include "c99phpicq.php";

   
 
 автор: bronenos   (15.07.2007 в 21:37)   письмо автору
 
   для: Proger   (15.07.2007 в 21:01)
 

вверху справа аттач

   
Rambler's Top100
вверх

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