当我这样做时:

print gethostbyname("google.ro");

它在不到1秒的时间内打印出IP。
如果我尝试用同一个域做同样的事情:
print gethostbyname("cduri.ro");

它尝试获取IP大约7-8秒,然后失败并将打印域。
我想要实现的是在1秒钟后以某种方式打破gethostbyname,因为我知道这意味着这个域不存在。我有一个大的域名列表,所以我不能等待7-8秒,每一个无法到达的域名。我想停下来换下一个。
有什么办法可以做到这一点吗?

最佳答案

我看了手册:http://www.php.net/manual/en/function.gethostbyname.php
发现这一点:
可以使用RES_Options环境变量提供底层解析器函数的选项。(至少在Linux下,请将时间设置为1),使DNS查找的执行时间最高为1秒:

putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
gethostbyname($something);

你没看到吗?或者你没有使用Linux?对你不起作用?手册里还有更多的建议,我不会一一列出。

关于php - 执行gethostbyname最多1秒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39044855/

10-11 08:49