Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Обход "фильтров" в icq [php] (https://forum.antichat.xyz/showthread.php?t=121982)

rcc0023 23.05.2009 20:15

Обход "фильтров" в icq [php]
 
Никак не могу разослать на свой icq ежесекундные сообщения.

Как обойти ограничения/отсылать с таким промежутком?

p.s. такое нужно не только для спама, но и определенной слежке за какими то действиями...

Gifts 23.05.2009 20:21

rcc0023 Вопрос - так ли уж необходимо слать сообщение ежесекундно? А не пакетами по 5-10 строк в сообщении каждые 5-10 секунд?

На сколько помню - количество и длина сообщений ограничиваются сервером, и это не обойти.

З.Ы. в джаббере таких ограничений нет (хотя зависит от серва)

awdrg 23.05.2009 20:23

1)Обьеденить события бота в несколько групп
2)Каждой группе присвоить свой UIN
3)Отсылать запрос о событии с определенного UINA
не лучшее решение но пока пришло в голову только это

Zombi **** 23.05.2009 20:25

Цитата:

Сообщение от awdrg
1)Обьеденить события бота в несколько групп
2)Каждой группе присвоить свой UIN
3)Отсылать запрос о событии с определенного UINA
не лучшее решение но пока пришло в голову только это

+1

rcc0023 24.05.2009 11:07

Спасибо за ответы, с частой отправкой проблему решил. Но вот появилась новая... отправляет лишние сообщения...

PHP код:

<?

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

}

?>


Gifts 24.05.2009 13:40

rcc0023 Что значит лишние?

И код немного странный, зачем $befor_user и $key_1?

Будет как-то так, отсторожно, удаляет строки из таблицы!:
PHP код:

<?

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!=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);
}
?>



Время: 19:45