Почему моя скорость socks5 не работает с использованием PHP и cURL? - PullRequest
0 голосов
/ 12 июня 2011

Я хочу измерить скорость сервера socks5 через PHP, поэтому я написал следующий код:

$url = 'http://cachefly.cachefly.net/1mb.test';
$proxy = '126.XXX.XXX.XXX:1080’;
//$auth  = $username.':'.$password;

$fp = fopen('1mb.test', 'w');

$start = microtime(true);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $auth);

$result = curl_exec($ch);

curl_close($ch);

$end = microtime(true);

fclose($fp);

$diff = $end - $start;
echo "elapsed time: ".$diff." seconds";

$a = 1024 / $diff;
echo '<br>'.floor($a).' kb/s';

К сожалению, код не работает.Без использования сервера socks5 файл загружается полностью - иначе нет.Кто-нибудь из вас знает, почему код не работает?Есть ли какие-либо альтернативы или предложения о том, как я могу достичь своей цели?

С уважением, Сказал.

Ответы [ 2 ]

1 голос
/ 12 июня 2011

"без сервера socks5 файл загружается". Другими словами, прокси не работает?

Вы не проверяете наличие ошибок скручивания. Добавьте следующее в ваш код, чтобы понять, почему загрузка не удалась:

$result = curl_exec($ch);
if ($result === FALSE) {
   die(curl_error($ch));
}

Никогда не предполагайте, что какой-то код, работающий с внешним ресурсом, прекратит работу. Ваш код может быть идеальным, но существует слишком много причин, по которым внешний ресурс не может НЕ проверять наличие успеха / неудачи каждый раз.

0 голосов
/ 12 июня 2011

Невозможно сказать без большого количества деталей. Точно, как это терпит неудачу? Это всегда терпит неудачу? Также вам следует убедиться, что вы используете относительно свежую версию libcurl, чтобы не было старых ошибок.

...