当我这样做时:
print gethostbyname("google.ro");
它在不到1秒的时间内打印IP。
如果我尝试对未存在的域做同样的事情:
print gethostbyname("cduri.ro");
它尝试获取IP 7-8秒,然后失败并将打印域。
我想要实现的是在1秒后以某种方式打破gethostbyname
,因为我知道这意味着该域不存在。我有一个很大的域列表,所以我不能等待每个域无法达到7-8秒。我想停下来移动到下一个。
有没有办法实现这个目标?
答案 0 :(得分:0)
我查看了手册:http://www.php.net/manual/en/function.gethostbyname.php 并发现了这个:
可以使用RES_OPTIONS环境变量提供底层解析器函数的选项。 (至少在Linux下,请参阅man resolv.conf)将超时和重试设置为1,使DNS查找的最长执行时间为1秒:
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
gethostbyname($something);
你还没有看到吗?或者你不使用Linux?它不适合你?手册中有更多建议,我不打算全部列出。