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

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

159932 18.12.2008 03:56

многопоточный носко4екер на php ..
 
PHP код:

<?php
/*######################
многопоточный носко4екер
по мотивам скрипта де-визбла на питоне ..
[ - надеюсь он не в обиде за идейный плагиат - ]

(C) 159932
######################*/
set_time_limit(0);
error_reporting(0);

$cout 10;                    #    кол-во потоков, советую не ставить много, если чек происходит с локала, да и при маленьком канале тем более..
$time 10;                    #    таймаут, чем больше потоков, тем больше таймаут надо ставить .. 
$filn 'sock.txt';            #    файл с носкаме
$good 'good.txt';            #    файл куда писать гут носки после чека
$deli '0';                    #    0 - ничего не делать с файлами;
                                #    1 - удалить файл с носками после чека;    
                                #    2 - удалить старый good.txt 
                                #    3 - удалить файл с носками, и старый good.txt 
                                #    кавычки для понту :D


############################################################################

$file[0] = array_unique(file($filn));
if (
sizeof($file[0]) < $cout$file array_chunk($file[0], $cout);

if (
$deli == 1unlink($filn);
if (
$deli == 2unlink($good);
if (
$deli == 3) { unlink($filn); unlink($good);}
    
$fin fopen($good'a');

foreach (
$file as $ips) {
    
$hren = array();
    
$mh curl_multi_init();
        foreach (
$ips as $ip) {
            
$ip trim($ip);
            if (!
preg_match('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}#',$ip)) continue;
                
$hren[$ip] = curl_init('http://cmyip.com/');
                
curl_setopt($hren[$ip], CURLOPT_RETURNTRANSFER,     1);
                
curl_setopt($hren[$ip], CURLOPT_TIMEOUT,            $time);
                
curl_setopt($hren[$ip], CURLOPT_PROXY,                 $ip);
                
curl_setopt($hren[$ip], CURLOPT_PROXYTYPE,             CURLPROXY_SOCKS5);
                
curl_multi_add_handle ($mh,$hren[$ip]);
        }
        if (!
sizeof($hren)) continue;

        do {
            
$mrc curl_multi_exec($mh$active);
        } while (
$mrc == CURLM_CALL_MULTI_PERFORM);

        while (
$active and $mrc == CURLM_OK) {
            if (
curl_multi_select($mh) != -1) {
                do {
                    
$mrc curl_multi_exec($mh$active);
                } while (
$mrc == CURLM_CALL_MULTI_PERFORM);
            }
        }

        foreach (
$hren as $i => $ip) {
            
$res[$i]=curl_multi_getcontent($hren[$i]);
            
curl_multi_remove_handle($mh,$hren[$i]);
            
curl_close($hren[$i]);
        }
        
        
curl_multi_close($mh);
        
    foreach (
$res as $ip=>$data) {
        
$ip explode(':',$ip);
        if (
strpos($data$ip[0]) !== falsefwrite($fin$ip[0].':'.$ip[1]."\r\n");
    }
}
fclose($fin);
?>


GreenBear 18.12.2008 04:08

в полезных скриптах место )


Время: 22:57