Под правильно понимаю:
взяли строку из файла с проксями, сделали чек коннект, если за 15 сек законектилось - юзаем проксю, если нет, берем другую, чекаем её...
Как проверять прокси правильно
Re: Как проверять прокси правильно
Что, никто не знает чтоли?
Re: Как проверять прокси правильно
Код: Выделить всё
// чтение проксей
$proxy_ar = file_get_contents('proxy.txt');
if (strpos($proxy_ar, "\r\n")) $proxy_ar = explode("\r\n", trim($proxy_ar));
else $proxy_ar = explode("\n", trim($proxy_ar));
// количество проксей
$num_proxies = count($proxy_ar);
// поинтер на проверяемый прокси
if (file_exists('position.txt')) $pos = file_get_contents('position.txt');
else $pos = 0;
// проверяем что не прошли весь список
if ($pos >= $num_proxies) {
echo "add more proxies<br>";
$app->quit();
}
// ищем живой прокси
while ($pos < $num_proxies) {
$curl = curl_init("http://m.bing.com/");
curl_setopt($curl, CURLOPT_PROXY, $proxy_ar[$pos]);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($curl);
curl_close($curl);
if (!empty($res) && strpos($res, 'm.bing.com')) {
$browser->enable_proxy('all connections', $proxy_ar[$pos]);
break;
}
file_put_contents('position.txt', ++$pos);
}