Windows 8
Apache 2.4
Php version 7
Curl version 7.50
Загружаю http proxy 10 - 15k, ставлю любые потоки хоть 1к проверяет быстро без ошибок, с соксами5 другая ситуация до 200 штук тоже идеально проверяет , но после 200 и более в не зависимости от кол потоков выдает ошибку:
$multith = curl_multi_init();
foreach($proxys as $ip) {
for($i=0; $i<count($ip); $i++) {
$ch[$i] = curl_init();
curl_setopt($ch[$i], CURLOPT_URL, $url);
curl_setopt($ch[$i], CURLOPT_HEADER, true);
curl_setopt($ch[$i], CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch[$i], CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch[$i], CURLOPT_AUTOREFERER, true);
curl_setopt($ch[$i], CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch[$i], CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch[$i], CURLOPT_PROXY, $ip[$i]);
curl_setopt($ch[$i], CURLOPT_VERBOSE, true);
curl_setopt($ch[$i], CURLOPT_STDERR, $files);
curl_setopt($ch[$i], CURLOPT_PROXYTYPE, type($proxytype));
curl_setopt($ch[$i], CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch[$i], CURLOPT_NOBODY, true);
curl_setopt($ch[$i], CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($ch[$i], CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch[$i], CURLOPT_FAILONERROR, true);
curl_setopt($ch[$i], CURLOPT_POST, true);
#curl_setopt($ch[$i], CURLOPT_PROXYUSERPWD, "login:pass");
curl_multi_add_handle($multith,$ch[$i]);
}
do {
while($send = curl_multi_exec($multith,$run));
} while($run == CURLM_CALL_MULTI_PERFORM);
usleep(5000);
while($run && $send == CURLM_OK) {
if(curl_multi_select($multith) != -1) {
do {
$send = curl_multi_exec($multith,$run);
while($result = curl_multi_info_read($multith)) {
if($result['msg'] == CURLMSG_DONE) {
$getinfo = curl_getinfo($result['handle']);
$check = $getinfo['http_code'];
if($check != 0) {
$count++;
echo $ip[array_search($result['handle'],$ch)].PHP_EOL;
flush();
ob_flush();
$ips = $ip[array_search($result['handle'],$ch)]."\r\n";
proxy_save(_FILE,$ips);
curl_multi_remove_handle($multith,$result['handle']);
}
}
}
usleep(100);
} while($run == CURLM_CALL_MULTI_PERFORM);
usleep(100);
}
}
}
* Trying 82.164.99.193...
* Trying 212.247.251.29...
* Trying 80.67.212.178...
* Trying 39.1.47.197...
* Trying 213.112.228.46...
* Trying 208.47.100.119...
* Trying 85.30.49.168...
* Trying 65.50.68.209...
* SOCKS5 read timeout
* Closing connection 1440
* Connection time-out
* Closing connection 1441
* Connection time-out
* Closing connection 1442
* Connection time-out
* Closing connection 1443
* SOCKS5 read timeout
* Closing connection 1444
* Unable to receive initial SOCKS5 response.
* Hostname mail.ru was found in DNS cache
самое интересное если в начале сокс5 списка будут валдиные прокси, тогда он отрабатывает до первого беда после одни ошибки.
Была тема
Плохо работает проверка Socks5-прокси через multi curl. А HTTP-прокси — идеально. Почему такое происходит? пробовал все что посоветовали но это не помогло
в гугле инфы очень мало все что нашел это старые рапорты о баге 5 - 6 лет назад сейчас ведь версия curl стоит поновее, может что то делаю не правильно кто сталкивался с подобным будут рад за любую помощь !
P.s если проверять прокси без multi в однопоточном режиме, проверяет очень долго но без ошибок