PDA

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


Developer
08.05.2006, 18:01
САБЖ. Хотел узнать, какие вообще существуют способы посылки сообщений на Icq средствами Php. Я знаю только один - коннект к серваку Icq сокетом и посылка Post-запроса. Но может есть какие-то еще варианты, например коннект прямо к серваку, или как там еще :)))

nerezus
08.05.2006, 18:16
например коннект прямо к серваку ага, можно и так.

Дикс
08.05.2006, 18:49
дайте кто-нить пример, мне тоже интересно.
и ещё как узнавать статус нужного уина средствами пхп.

pch
09.05.2006, 00:43
Определение статуса с точностью до Недоступен/Вышел итд - не видел. А если надо определять только оффлайн/онлайн, то - пожалуйста:
Индикатор - картинка, чтобы поставить на сайт. Смотри здесь (http://www.icq.com/features/web/indicator.html)
Проверка на 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 А картинка? Там, мне казалось, недавно ввели систему, по которой для отправки сообщения, надо ввести число с картинки? :confused:

x_Lex
09.05.2006, 02:09
http://rapidshare.de/files/19976099/c99phpicq.php.v.0.9b-dev.txt.html

Talisman
09.05.2006, 02:53
http://rapidshare.de/files/19976099/c99phpicq.php.v.0.9b-dev.txt.html
респект!

Дикс
09.05.2006, 20:29
Warning: dl(): Not supported in multithreaded Web servers - use extension statements in your php.ini in z:\home\localhost\www\c99phpicq.php on line 170
Sockets extension needed!

поставил в php.ini
; Следующая директива разрешает или запрещает использование функции dl().
; Функция dl() работает неправильно в многопоточных Web-серверах,
; например, в IIS или Zeus, и автоматически отключается для них.
enable_dl = Off
и всё равно та же трабла

Дикс
09.05.2006, 20:32
а на другом серваке в инете
Sockets extension needed!

x_Lex
09.05.2006, 21:05
снеми ";"
;extension=php_sockets.dll

drmist
10.05.2006, 15:44
http://drmist.ru/~php/c99phpicq.zip

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

Developer
10.05.2006, 15:56
В общем, теорию я сам занаю, а воткто код даст посмотреть работающий и простенький??? На счет картики да... Не густо, это целый геморой, картинку загрузи, порежшь, сравни...

Developer
10.05.2006, 16:00
Посмотрел сейчас скрипт CCTeam - отлично. Прямой коннект к серверу, нужно лишь зарегить номер. В принципе, прикольно. Можно сделать паблик сниффер как на antichat, только встроить функицю ICQ :))) И будет робот отсылать мессаги :)

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

drmist, + однозначно :)

Дикс
10.05.2006, 20:25
; Модули для Windows
; Замечание: поддержка MySQL и ODBC теперь включена в ядро PHP, так что
; для нее уже не нужны никакие библиотеки DLL. Подключение тех или иных
; модулей в системах, которые не предназначены для них, может вызвать
; неработоспособность сервера. Поэтому подключайте только те модули, в
; которых уверены.
;

;#
;# Внимание: модули, закомментированные при помощи двойной точки
;# с запятой ";;", требуют дополнительных внешних библиотек и не
;# работают в умолчательной конфигурации. Не пытайтесь их подключить
;# "просто так", в надежде, что это сработает.
;#


:( на денвере не запустить никак?

ferryman
14.05.2006, 15:45
Взято с http://php.net

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);

x_Lex
15.05.2006, 14:35
:( на денвере не запустить никак?
вот с этой зборкой по умолчанию запускал и всё работало
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

В общем, теорию я сам занаю, а воткто код даст посмотреть работающий и простенький??? На счет картики да... Не густо, это целый геморой, картинку загрузи, порежшь, сравни...


$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"));

Kanick
29.05.2006, 07:23
Кстати, да.. Отправка на номер Icq новых записей сниффера - это тема. Возьму на заметку.