САБЖ. Хотел узнать, какие вообще существуют способы посылки сообщений на Icq средствами Php. Я знаю только один - коннект к серваку Icq сокетом и посылка Post-запроса. Но может есть какие-то еще варианты, например коннект прямо к серваку, или как там еще ))
Определение статуса с точностью до Недоступен/Вышел итд - не видел. А если надо определять только оффлайн/онлайн, то - пожалуйста: Индикатор - картинка, чтобы поставить на сайт. Смотри здесь Проверка на 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 ($host, 80, &$errno, &$errstr, 30); if ($errno) die ("Ошибка соединения!"); fputs($fp, $query); while($line[]=@fgets($fp, 900)); return (strpos($line[13], "online1")) ? true : false; } ?> 2Developer А картинка? Там, мне казалось, недавно ввели систему, по которой для отправки сообщения, надо ввести число с картинки?
http://drmist.ru/~php/c99phpicq.zip Релиз CCTeam. Поудачней ихнего шелла )). Включает библиотеку для работы с протоколом icq и брутфорсер.
В общем, теорию я сам занаю, а воткто код даст посмотреть работающий и простенький??? На счет картики да... Не густо, это целый геморой, картинку загрузи, порежшь, сравни...
Посмотрел сейчас скрипт CCTeam - отлично. Прямой коннект к серверу, нужно лишь зарегить номер. В принципе, прикольно. Можно сделать паблик сниффер как на antichat, только встроить функицю ICQ )) И будет робот отсылать мессаги Кстати, как сделать, чтобы он реагировал на входящие мессаги? drmist, + однозначно
Взято с 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_cont, strpos($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);
вот с этой зборкой по умолчанию запускал и всё работало 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"));