PHP中的DNS查找

我有一个Windows服务器,间歇性地失去了查询DNS信息的能力。 我试图find问题的根本原因,但同时我希望能够监视服务器是否可以执行查找。

基本上,如果查找成功,它应该尝试查找一些常见的主机名和显示“成功”。

该网站运行PHP,所以我宁愿监视器脚本是在PHP中,但如果有人知道如何做到这一点在ASP /。NET,也将工作。

在Windows上PHP PHP的功能在PHP 5.3之前是不可用的。 你将需要Pear Net_DNS类。 http://pear.php.net/package/Net_DNS

用法示例:

require_once 'Net/DNS.php'; $resolver = new Net_DNS_Resolver(); $resolver->debug = $this->debug; // nameservers to query $resolver->nameservers = array('192.168.0.1'); $resp = $resolver->query($domain, 'A'); 

来源: http : //code.google.com/p/php-smtp-email-validation/source/browse/trunk/smtp_validateEmail.class.php#232

但是这个函数有一点局限性是Changelog:v。PHP 5.3.0 – 这个函数现在在Windows平台上可用。

如果你不想在IIS上更新php。 还有另一种方法是对windows二进制执行dig。 这里是挖窗户 。 你可能也需要为你自己而不是任何程序。 它超出了旧的不够nslookup命令。

在ping有问题的主机名之前,“ping”始终执行DNS查找(正向和反向)。 编写一个shell脚本来使用ping(或者挖掘)来查看ping是否行为不顺,这是读者的一个练习。

另一个选择是在本地机器上使用高速缓存DNS服务器,高速缓存来自上游DNS服务器的回复,并在上游关闭时从高速缓存发送数据。 我自己的死木是一个微小的32K的Windows或UNIX二进制文件,可以做到这一点(64k,如果你想完整的DNS递归)