2009-07-11 10 views
4

私は断続的にDNS情報を検索する能力を失っているWindowsサーバーを持っています。私は問題の根本的な原因を調べようとしていますが、その間にサーバーがルックアップを実行できるかどうかを監視できるようにしたいと考えています。PHPでのDNS検索

基本的には、いくつかの一般的なホスト名を検索して、検索が成功した場合は「成功」と表示します。

このサイトはPHPを実行するので、私はモニタースクリプトがPHPであることを望みますが、誰かがASP/.Netでこれを行う方法を知っていればうまくいくでしょう。

答えて

6

http://www.php.net/manual/en/function.dns-get-record.phpは、あなたが後にいるように聞こえるphpの関数です。

+0

ありがとうございました。この機能はWindowsで最後に試したときには利用できませんでしたが、PHP 5.3以降で利用可能になりました。私は最初にそれをもう一度チェックすべきだった。 –

0

しかし、その機能の少しの制限があります 変更履歴:v。PHP 5.3.0 - この機能はWindowsプラットフォームで利用可能になりました。

IIS上でphpを更新したくない場合は、 Windowsバイナリのdigを実行する別の方法があります。 はdig for windowsです。 あなたは自分自身のためにそれを必要とするかもしれません。 これは、古い - 不十分なnslookupコマンドを超えています。

+0

私の場合、これはサーバーが5.3を実行しているために機能しますが、Windowsでこの機能が利用できないと考えていたので、最初は質問していました。 –

2

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

0

"Pingが" いつも疑問にホスト名をpingを実行する前に、DNSルックアップ(両方の順方向および逆方向)を行います。 ping(またはdig)を使ってpingがうまく動作しているかどうかを確認するためのシェルスクリプトを書くことは、読者の練習として残されています。

もう1つの方法は、アップストリームDNSサーバーからの応答をキャッシュし、アップストリームがダウンしているときにキャッシュからデータを送信するローカルマシン上のキャッシングDNSサーバーを使用することです。私自身のデッドウッドはこれを行うことができる小さな32k WindowsまたはUNIXのバイナリです(完全なDNS再帰が必要な場合は64k)