Просмотр полной версии : Обход "фильтров" в icq [php]
Никак не могу разослать на свой icq ежесекундные сообщения.
Как обойти ограничения/отсылать с таким промежутком?
p.s. такое нужно не только для спама, но и определенной слежке за какими то действиями...
rcc0023 Вопрос - так ли уж необходимо слать сообщение ежесекундно? А не пакетами по 5-10 строк в сообщении каждые 5-10 секунд?
На сколько помню - количество и длина сообщений ограничиваются сервером, и это не обойти.
З.Ы. в джаббере таких ограничений нет (хотя зависит от серва)
1)Обьеденить события бота в несколько групп
2)Каждой группе присвоить свой UIN
3)Отсылать запрос о событии с определенного UINA
не лучшее решение но пока пришло в голову только это
Zombi ****
23.05.2009, 20:25
1)Обьеденить события бота в несколько групп
2)Каждой группе присвоить свой UIN
3)Отсылать запрос о событии с определенного UINA
не лучшее решение но пока пришло в голову только это
+1
Спасибо за ответы, с частой отправкой проблему решил. Но вот появилась новая... отправляет лишние сообщения...
<?
include('connect.php');
include('table.php');
include('WebIcqLite.class.php');
$key_1=$key_2=0;
//настройка и подключение к icq
$array_acc_icq[0][uin]=7776666;$array_acc_icq[0][pass]='parol_andreya';
$len_array_acc_icq=count($array_acc_icq);
for($row=0;$row<$len_array_acc_icq;$row++){
$icq[$row]=new WebIcqLite();
$icq[$row]->connect($array_acc_icq[$row][uin],$array_acc_icq[$row][pass]);
echo $icq[$row]->error;
if($icq[$row]->error!='')$icq_error=1;
};
while($icq_error!=1 and $test<1){
++$test; //смотрим сколько сообщений будет, если один раз прокрутить
$mysql_query_1=mysql_query('SELECT * FROM '.$table_do.' ORDER BY user ASC'); //загрузка всех переходов
if(mysql_num_rows($mysql_query_1)!=0){
while($g=mysql_fetch_array($mysql_query_1)){
if($befor_user==$g[user]){--$key_1;}else{$array_do[$key_1][massage]='';};
$array_do[$key_1][massage].=date('H:i',$g[date]).' | '.$g[user].' перешел на '.$g[page].'
';
$befor_user=$g[user];
++$key_1;
};
for($row=0;$row<count($array_do);$row++){
if($key_2==$len_array_acc_icq)$key_2=0;
$icq[$key_2]->send_message(373829414,$array_do[$row][massage]);
if($icq[$row]->error!='' and $icq[$row]->error!='Unknown serwer answer'){$icq_error=1;}else{mysql_query('DELETE FROM '.$table_do.' WHERE ..... LIMIT 1');};
++$key_2;
sleep(2);
};
};
sleep(3);
}
?>
rcc0023 Что значит лишние?
И код немного странный, зачем $befor_user и $key_1?
Будет как-то так, отсторожно, удаляет строки из таблицы!:
<?
include('connect.php');
include('table.php');
include('WebIcqLite.class.php');
$key_2=0;
//настройка и подключение к icq
$array_acc_icq['0']['uin']=7776666;
$array_acc_icq['0']['pass']='parol_andreya';
$len_array_acc_icq=count($array_acc_icq);
for($row=0;$row<$len_array_acc_icq;$row++)
{
$icq[$row]=new WebIcqLite();
$icq[$row]->connect($array_acc_icq[$row]['uin'],$array_acc_icq[$row]['pass']);
echo $icq[$row]->error;
if($icq[$row]->error!='')$icq_error=1;
}
while($icq_error!=1 and $test<1){
++$test;
$mysql_query_1=mysql_query('SELECT * FROM '.$table_do.' ORDER BY user ASC');
while($g=mysql_fetch_array($mysql_query_1))
{
// Заносим в ассоциативный массив, по имени пользователя
$array_do[$g['user']][]=date('H:i',$g['date']).' | '.$g['user'].' перешел на '.$g['page'];
}
if (!empty($array_do))
foreach($array_do as $name => $val)
{
$icq[$key_2 % $len_array_acc_icq]->send_message(373829414,implode("\n",$val));
if($icq[$key_2 % $len_array_acc_icq]->error!='' and $icq[$key_2 % $len_array_acc_icq]->error!='Unknown serwer answer')
{$icq_error=1;}
else
{
// Удаление из лога всех строк с отправленным пользователем
// Хотя, конечно, лучше так не делать, а проверять по дате последней отправки
mysql_query('DELETE FROM '.$table_do.' WHERE user=\''.mysql_real_escape_string($name).'\'');
}
$key_2++;
sleep(2);
}
// Убираем массив array_do, чтобы не смущал
unset($array_do);
sleep(3);
}
?>
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot