Heim >Backend-Entwicklung >PHP-Tutorial >PHP的dns_get_record在本机测试很慢怎么解决

PHP的dns_get_record在本机测试很慢怎么解决

WBOY
WBOYOriginal
2016-06-06 20:21:581624Durchsuche

一直想查找一个免费不限频率的域名查询接口,网上找了很久都没找到,最后干脆自己写一个域名查找接口,原理是直接用PHP查找该域名的whois信息,但直接查找whois太慢,就想先查找该域名的NS记录,如果有NS记录的话这个域名就已经注册了,这样理论上应该要快一些,这种思路对吗?
现在我用php的dns_get_record查询域名dns信息,但这速度真的不敢恭维哈,试了很多域名,基本上平均查询时间都在一分钟以上!有好几次都挂掉了,完全不像网上域名注册商那样快,手上没有美国的主机,想问一下,如果在美国主机上运行dns_get_record是不是会快一些?

回复内容:

一直想查找一个免费不限频率的域名查询接口,网上找了很久都没找到,最后干脆自己写一个域名查找接口,原理是直接用PHP查找该域名的whois信息,但直接查找whois太慢,就想先查找该域名的NS记录,如果有NS记录的话这个域名就已经注册了,这样理论上应该要快一些,这种思路对吗?
现在我用php的dns_get_record查询域名dns信息,但这速度真的不敢恭维哈,试了很多域名,基本上平均查询时间都在一分钟以上!有好几次都挂掉了,完全不像网上域名注册商那样快,手上没有美国的主机,想问一下,如果在美国主机上运行dns_get_record是不是会快一些?

刚刚测试了alexa top 500域名,最大耗时12.2S,最小不到0.001S.
同时事先我清空了本机的DNS缓存.

PHP的dns_get_record在本机测试很慢怎么解决


可以这么实现,因为每个域名至少等包含一条NS记录。

速度慢是你机器的原因,我在本机测试最多不超过3S.

获取一条后在一段时间内会存在缓存,我想你可以修改本机的DNS服务器看看能否有改善

<code>$start=microtime(true);
$domain='segmentfault.com';
$rs=dns_get_record(strtolower($domain),DNS_NS);
print_r($rs);
$end=microtime(true);

echo $end-$start;</code>

PHP的dns_get_record在本机测试很慢怎么解决

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn