[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