Посылка сообщений на Icq с помощью Php

Discussion in 'PHP' started by Developer, 8 May 2006.

  1. Developer

    Developer Elder - Старейшина

    Joined:
    3 May 2006
    Messages:
    152
    Likes Received:
    25
    Reputations:
    10
    САБЖ. Хотел узнать, какие вообще существуют способы посылки сообщений на Icq средствами Php. Я знаю только один - коннект к серваку Icq сокетом и посылка Post-запроса. Но может есть какие-то еще варианты, например коннект прямо к серваку, или как там еще :)))
     
  2. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    727
    Reputations:
    266
    ага, можно и так.
     
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    дайте кто-нить пример, мне тоже интересно.
    и ещё как узнавать статус нужного уина средствами пхп.
     
  4. pch

    pch Elder - Старейшина

    Joined:
    22 Oct 2005
    Messages:
    34
    Likes Received:
    41
    Reputations:
    15
    Определение статуса с точностью до Недоступен/Вышел итд - не видел. А если надо определять только оффлайн/онлайн, то - пожалуйста:
    Индикатор - картинка, чтобы поставить на сайт. Смотри здесь
    Проверка на PHP. Вот, настругал:

    PHP:
    <?
    if (
    is_online(123456)) {echo "online";} else {echo "offline";}
    function 
    is_online($uin){
        
    $query="GET /online.gif?icq=".$uin."&img=5 HTTP/1.0\n\n";
        
    $host="status.icq.com";
        
    $fp fsockopen ($host80, &$errno, &$errstr30);
        if (
    $errno) die ("Ошибка соединения!");
        
    fputs($fp$query);
        while(
    $line[]=@fgets($fp900));
        return (
    strpos($line[13], "online1")) ? true false;
    }
    ?>
    2Developer А картинка? Там, мне казалось, недавно ввели систему, по которой для отправки сообщения, надо ввести число с картинки? :confused:
     
  5. x_Lex

    x_Lex Elder - Старейшина

    Joined:
    8 Jan 2005
    Messages:
    185
    Likes Received:
    118
    Reputations:
    171
  6. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
  7. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    поставил в php.ini
    и всё равно та же трабла
     
  8. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    а на другом серваке в инете
     
  9. x_Lex

    x_Lex Elder - Старейшина

    Joined:
    8 Jan 2005
    Messages:
    185
    Likes Received:
    118
    Reputations:
    171
    снеми ";"
    ;extension=php_sockets.dll
     
  10. drmist

    drmist Member

    Joined:
    8 Oct 2005
    Messages:
    307
    Likes Received:
    94
    Reputations:
    80
    http://drmist.ru/~php/c99phpicq.zip

    Релиз CCTeam. Поудачней ихнего шелла )). Включает библиотеку для работы с протоколом icq и брутфорсер.
     
    1 person likes this.
  11. Developer

    Developer Elder - Старейшина

    Joined:
    3 May 2006
    Messages:
    152
    Likes Received:
    25
    Reputations:
    10
    В общем, теорию я сам занаю, а воткто код даст посмотреть работающий и простенький??? На счет картики да... Не густо, это целый геморой, картинку загрузи, порежшь, сравни...
     
  12. Developer

    Developer Elder - Старейшина

    Joined:
    3 May 2006
    Messages:
    152
    Likes Received:
    25
    Reputations:
    10
    Посмотрел сейчас скрипт CCTeam - отлично. Прямой коннект к серверу, нужно лишь зарегить номер. В принципе, прикольно. Можно сделать паблик сниффер как на antichat, только встроить функицю ICQ :))) И будет робот отсылать мессаги :)

    Кстати, как сделать, чтобы он реагировал на входящие мессаги? :)

    drmist, + однозначно :)
     
  13. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    :( на денвере не запустить никак?
     
  14. ferryman

    ferryman Elder - Старейшина

    Joined:
    13 Feb 2006
    Messages:
    88
    Likes Received:
    8
    Reputations:
    5
    Взято с http://php.net

    PHP:
    function icq_uin($uin)
    {
       if (! 
    is_numeric($uin))
           return 
    false;
       
    $proxy_name 'proxy.server.ru';
       
    $proxy_port 3128;
       
    $proxy_user "";
       
    $proxy_pass "";
       
    $proxy_cont '';
       
    $request_url "http://status.icq.com/online.gif?icq=$uin";

       
    $proxy_fp fsockopen($proxy_name$proxy_port);
       if (!
    $proxy_fp)
           return 
    false;
       
    fputs($proxy_fp"GET $request_url HTTP/1.0\r\nHost: $proxy_name\r\n");
       
    fputs($proxy_fp"Proxy-Authorization: Basic "base64_encode ("$proxy_user:$proxy_pass")."\r\n\r\n");
       while(!
    feof($proxy_fp)){
           
    $proxy_cont .= fread($proxy_fp,4096);
       }
       
    fclose($proxy_fp);
       
    $proxy_cont substr($proxy_contstrpos($proxy_cont,"\r\n\r\n")+4);
       if (
    strstr($proxy_cont'online1'))
           return 
    'online';
       if (
    strstr($proxy_cont'online0'))
           return 
    'offline';
       if (
    strstr($proxy_cont'online2'))
           return 
    'disabled';
    }
    echo 
    "User is ".icq_uin(3398470);
     
  15. x_Lex

    x_Lex Elder - Старейшина

    Joined:
    8 Jan 2005
    Messages:
    185
    Likes Received:
    118
    Reputations:
    171
    вот с этой зборкой по умолчанию запускал и всё работало
    http://www.denwer.ru/dis/Base_PHP5/Base_PHP5_2005-10-07_a1.3.31_p5.0.4_m4.1.8_pma2.6.1.exe

    PHP:
    $icq = new ICQclient("123456","password");
    $icq->setstatus("FREE4CHAT"); // Set status Free for chat
    $icq->setstatusflags("DCCONT"); // Set status-flags
    $icq->login();
    $icq->message_send("656555","it works"); // Send message
    //Example recieve message:
    while ($icq->socket)
    {
     
    $icq->listen(); //Fetching packet
     
    if ($icq->ismessage()) //If recieved packet is a message
     
    {
      echo 
    "I have message from ".$icq->inLastVar["uin"].": ".$icq->inLastVar["text"]."\n\n";
      
    $icq->message_send($icq->inLastVar["uin"],"You wrote: ".$icq->inLastVar["text"]); // Send message
     
    }
    }
    //Example get info:
    var_dump($icq->getinfo("656555"));
     
  16. Kanick

    Kanick Elder - Старейшина

    Joined:
    6 Sep 2005
    Messages:
    59
    Likes Received:
    30
    Reputations:
    32
    Кстати, да.. Отправка на номер Icq новых записей сниффера - это тема. Возьму на заметку.