function checkit($ip,$port) { $connect = @fsockopen ($ip,$port, $errno, $errstr, 5); if($connect) return TRUE; else return FALSE; } но с сокетами только в 1 поток, а с курлом можно юзать мультизапросы - намного быстрее будет...
заюзай функцию с аргументами antichat.ru, 80, ачат тоже прокся? если ты про курловую мультитридинг - то это лишь жалка эмуляция которая скорости не прибавит, ну разве что на понты, в пыхе 4/5 нет ни многозадачности ни многопоточности
PHP: <?php set_time_limit(0); //error_reporting(1); //ignore_user_abort(true); $data = 'proxiesdub.txt'; $good = 'good.txt'; $bad = 'bad.txt'; $dataFile = file($data); $g = fopen($good, 'a+'); $b = fopen($bad, 'a+'); if(!$dataFile ) { fwrite($b,"can't read accounts file\n"); die(); } function checkit($ip,$port) { $connect = fsockopen ($ip,$port, $errno, $errstr,20); if($connect) return TRUE; else return FALSE; } foreach($dataFile as $account) { $explode_ = explode(':',$account); $ip = trim($explode_['0']); $port = trim($explode_['1']); if(checkit($ip,$port)) fwrite($g,"$ip:$port\r\n"); else fwrite($b,"$ip:$port\r\n"); } fclose($g); fclose($b); ?> надоело ждать наваял сам!вроде работает, прошу высказать свое мнение насчет кода.
Ну о аяксе, сама аббревиатура говорит о том что многопоточность имеет место быть, но это по аналогу с Code: sh$ php script.php | php script.php #считать что это 2 потока но можно обойтись и не блокируемыми сокетами ченить типа Code: stream_socket_client($url.":".$port, $errno, $errstr, 10, STREAM_CLIENT_ASYNC_CONNECT|STREAM_CLIENT_CONNECT); В варианте выше будет создано 2 процесса (уж извиняйте, в моём понимании поток - это то легкий,lightweight, процесс), а в первом 1 процесс. Тем не мение не сказал бы что одно лучше второго, не для этого пхп создан как бы. функция checkit пропусти в гуд любой хост который откликнется через 1 сек, как я писал это в посте #3. А вообще код так себе, опять таки - пых не для этого создан, при большом к-ве проксей будет оч долго, а при очень большом ( ) просто не откроется файл, если конечно не делать всяких ini_set("memoty_limit", "100500M");
Функция fsockopen предназначена для соединения клиента с сервером. Она очень удобна, поскольку является универсальной и объединяет в себе те функции, которые есть в PHP для работы с сокетами. Функция имеет следующий синтаксис: int fsockopen (string target, int port [, int errno [, string errstr [, float timeout]]]) Первый аргумент функции представляет собой URL хоста target, с которым необходимо соединиться, второй — номер порта port по которому произойдет соединение. Необязательный аргумент errno указывает на номер ошибки, а errstr содержит текст сообщения об ошибке. Аргумент timeout позволяет указать количество секунд, в течение которого устанавливается соединение. так таймаут тогда для чего ??
ты не понял, соединение произойдет с любым хостом, и он полетит в гуд, проверять на коннект - мало, ведь не факт что после отправки хттп запроса ты получишь то что надо вот попробуй отправь Code: # telnet antichat.ru 80 //ура, есть коннект, fsockopen отработает и ачат попадает в гуд GET / HTTP/1.1 Host: mail.ru //и тут жопа, вместо майл ру,мы конечно же получим ответ мол такого хоста на сервере нет по этому надо проверять ответ, что бы наверняка убеждатся что это прокся, а не просто сайтик
PHP: <?php $proxys = file('proxy.txt'); $proxys = array_map('trim',$proxys); list($proxy, $port) = explode(':',$proxys[2]); echo 'USE PROXY: '.$proxy.':'.$port.'<br><hr>'; $fp = @fsockopen($proxy, $port, $errno, $errstr, 5); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: ya.ru\r\n"; $out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8"; $out .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; $out .= "Accept-Language: ru,en-us;q=0.7,en;q=0.3"; $out .= "Accept-Encoding: gzip,deflate"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { @$content .= fgets($fp, 128); } fclose($fp); list($headers, $body) = explode("\r\n\r\n", $content, 2); echo 'HEADERS:<br>'.$headers.'<hr>'; echo 'BODY:<br>'.$body.'<hr>'; } ?>