繁体   English   中英

为什么使用 PHP 和 cURL 测量我的 socks5 速度不起作用?

[英]Why does my socks5 speed measure with usage of PHP and cURL not work?

我想通过 PHP 测量 socks5 服务器的速度,所以我编写了以下代码:

$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 服务器,文件会被完全下载——否则不会。 你们中有人知道为什么代码不起作用吗? 关于如何实现我的目标,是否有任何替代方案或建议?

真诚的,说。

“没有 socks5 服务器,文件将被下载”。 换句话说,代理不起作用?

您没有检查 curl 错误。 将以下内容添加到您的代码中以查看下载不成功的原因:

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

永远不要假设某些处理外部资源的代码会成功。 您的代码可能很完美,但是外部资源无法每次都检查成功/失败的原因太多了。

没有更多的细节是不可能的。 它究竟是如何失败的? 它总是失败吗? 此外,您应该确保使用合理的最新 libcurl 版本,以免遇到旧错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM