[PHP-users 13179] Re: getmxrr 関数に関して

ISIGE, Akira php-users@php.gr.jp
Mon, 10 Feb 2003 12:07:29 +0900


いしげ です.

Mon, 10 Feb 2003 11:47:27 +0900 の,
Akinobu YAMAMOTO <ayamamot@freeshop.co.jp> 様のメールより.

> getmxrrの部分を以下のように変更いたしました。
> //if (!getmxrr($chkhost,$mxhostarr)){
> if (!checkdnsrr($chkhost,A)){
>          print "Error!!\n";
> }else{
>          print "Good!!\n";
> }

MX,A,CNAME の全てを or で確認した方がよいかと思います.

A がなくて MX がある名前というのもありますから.

また,[php-users 6251] にも指摘されていますが,
CNAME でも実際には届いてしまいますし,
そういう環境をプロバイダがユーザに提供している例もありますし...

自分が常用しているチェックコードはこんな↓感じです.
----------------------------------------------------
  if( ! checkdnsrr( $domain, 'MX' ) ){
    if( ! checkdnsrr( $domain, 'A' ) ){
      if( ! checkdnsrr( $domain, 'CNAME' ) ){
        print "Error!!\n";
      }
    }
  }
----------------------------------------------------


> しかしながら、これはあくまでDNSのチェックになってしまうため、
> getmxrr関数に比べ、チェックが甘くなるのは仕方がないのでしょうか。

ユーザが Unknown だとか,サーバに接続できないだとか,
色々な状況が考えられると思います.

出来るだけ許容したいのか,逆に拒否したいのか,
どちらを優先するか,という問題でしょう.
上記のコードは,許容側を優先しています.そういう状況での使用でしたので.

------------
ISIGE, Akira