PHP中的DNS查找

时间:2009-07-11 12:40:56

标签: php windows dns

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

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

网站运行PHP所以我更喜欢监视器脚本是PHP,但如果有人知道如何在ASP / .Net中这样做也可以。

4 个答案:

答案 0 :(得分:6)

http://www.php.net/manual/en/function.dns-get-record.php是php中的功能,听起来就像你在追求。

答案 1 :(得分:2)

在Windows上PHP PHP DNS函数在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

答案 2 :(得分:0)

但是这个功能有一点限制 更改日志:v.PHP 5.3.0 - 此功能现在可在Windows平台上使用。

如果你不想在IIS上更新php。 还有另一种替代方法是执行dig for windows binary。 这是dig for windows。 您可能还需要为自己而不是任何程序。 它超出了旧的nslookup命令。

答案 3 :(得分:0)

在ping相关主机名之前,“Ping”始终执行DNS查找(正向和反向)。编写一个shell脚本来使用ping(或dig)来查看ping是否表现得很糟糕,这留给了读者。

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