我正在尝试测试一些SOCKS代理,并且在尝试获取此代理的“ping”时间时,我正在寻找变量“connect_time”。对于HTTP和HTTPS代理,这似乎工作正常,但不适用于SOCKS(SOCKS4或SOCKS5)代理,其中connect_time总是等于0(或几乎......)!
{
"url":"XXX",
"content_type":"text/html",
"http_code":200,
"header_size":178,
"request_size":379,
"filetime":-1,
"ssl_verify_result":0,
"redirect_count":0,
"total_time":4.738683,
"namelookup_time":0.000021,
"connect_time":0.000023,
"pretransfer_time":0.000104,
"size_upload":140,
"size_download":51275,
"speed_download":10820,
"speed_upload":29,
"download_content_length":-1,
"upload_content_length":140,
"starttransfer_time":0.000149,
"redirect_time":0,
"certinfo":{
},
"redirect_url":""
}
这是我的一段代码:
$options = array(
CURLOPT_PROXY => $proxy->ip.':'.$proxy->port,
CURLOPT_TIMEOUT => 30,
CURLOPT_CONNECTTIMEOUT => 30,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Expect:'),
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_VERBOSE => FALSE,
CURLOPT_USERAGENT => 'XXX',
);
if ($proxy->type == 'https')
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
elseif ($proxy->type == 'socks4')
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
elseif ($proxy->type == 'socks5')
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
当尝试从我的计算机ping(使用ping
...)此代理时,我的ping时间约为50毫秒......
curl或php有错误吗?你知道我可以检索正确的ping时间吗?
答案 0 :(得分:2)
使用代理时,连接时间是代理的第一个响应和结束身份验证之间的时间。所以基本上你的身份验证过程大约需要0.00023秒。这是合情合理的。
我不确定这是否是cURL应该如何工作的预期方式,因为看起来这只是在cURL上使用代理时的情况。
我认为这是一个错误。