为什么我的curl connect_time总是等于0?

 青烟_I乀n-a_396 发布于 2023-02-12 11:09

我正在尝试测试一些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时间约为50ms ...

curl或php有错误吗?你知道我可以检索正确的ping时间吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有