curl namelookup_time 10秒

Jos*_*hua 5 php curl

当在PHP中执行基本curl请求到纯文本网页(http://whatismyip.org/)时,响应需要10秒以上.

从curl查看信息后告诉我,namelookup_time是10秒.从命令行(终端)执行curl时,我可以看到完全相同的结果.

为什么名称查找花了这么长时间,从我读过的内容来看,这可能与托管PHP文件的服务器/我的计算机有关.


这是我的代码:

$ch = curl_init();  
curl_setopt( $ch, CURLOPT_URL, "whatismyip.org");
curl_exec( $ch );

$ci = curl_getinfo($ch);
print_r($ci);
Run Code Online (Sandbox Code Playgroud)

这是信息:

[url] => HTTP://whatismyip.org 
[content_type] => text/plain 
[http_code] => 200 
[header_size] => 45 
[request_size] => 53 
[filetime] => -1 
[ssl_verify_result] => 0 
[redirect_count] => 0 
[total_time] => 10.549943 
[namelookup_time] => 10.100938 
[connect_time] => 10.300077 
[pretransfer_time] => 10.300079 
[size_upload] => 0 
[size_download] => 14 
[speed_download] => 1 
[speed_upload] => 0 
[download_content_length] => -1 
[upload_content_length] => 0 
[starttransfer_time] => 10.549919 
[redirect_time] => 0 
[certinfo] => Array ( )
Run Code Online (Sandbox Code Playgroud)

小智 8

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
Run Code Online (Sandbox Code Playgroud)

解决了我的问题.IPV6有一个不起眼的bug.


Dav*_*dom 5

我无法完全使用上面的代码重复此操作 -namelookup_time在我的(Windows)机器上返回为0, 并total_time为 ~ 0.5namelookup_time是操作系统解析 的 DNS 名称所花费的时间whatismyip.org,因此您需要检查服务器的 DNS 配置。

据猜测,您配置的主 DNS 服务器不存在/无法工作,超时为 10 秒。这意味着操作系统将等待 10 秒来尝试联系主 DNS,当超时时,操作系统将转至辅助 DNS,从而正常工作。

您配置的 DNS 服务器是什么?如果需要,请尝试使用8.8.8.8(Google) 作为您的主要 DNS。

附带说明一下,最好为 cURL提供完整的http://whatismyip.org/URL,因此请使用而不是 just whatismyip.org- 尽管这似乎不是此特定问题的原因。