PHPではDNSレコードを検索するという関数もあるんです。すごい世の中になってきました。checknsrrという関数です。
検索できるレコードは、PHP5ではすべてのレコードで「A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, ANY,TXT,AAAA」となります。これだけ調べれば殆ど問題ないと思います。試験的にいろいろやってみた範囲ではブレが殆どありませんでした。CNAMEでサブドメインも検索できます。
全レコードをまとめて検索したい場合は、
関数を使って返り値は配列にしてあります。検索結果のブール値と探し当てたレコード、検索対象になったドメインを返すようになっています。もし検索できなかったらレコードも空になって返ってきます。
検索できるレコードは、PHP5ではすべてのレコードで「A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, ANY,TXT,AAAA」となります。これだけ調べれば殆ど問題ないと思います。試験的にいろいろやってみた範囲ではブレが殆どありませんでした。CNAMEでサブドメインも検索できます。
- $result_bool = checkdnsrr(<検索ドメイン>,'<検索レコード>');
$domain = 'omnioo.com';というような使い方ができます。
$result_bool = checkdnsrr($domain,'A');
if ($result_bool) {
print $domain."は存在します。\n";
} else {
print $domain."は存在しません。\n";
}
全レコードをまとめて検索したい場合は、
function domain_search ($domain) {という感じでしょうか。
$dns_record = array(A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, ANY,TXT,AAAA);
foreach ($dns_record as $k=>$v) {
#print "$k=>$v<br />\n";
$result_bool = checkdnsrr($domain,"$v");
if ($result_bool) {
$searched_record = $v;
break;
} else {
next;
}
}
return $re = array($result_bool,$searched_record,$domain);
}
$domain = 'omnioo.com';
$re = array();
$re = domain_search ($domain);
foreach ($re as $k=>$v) {
print "$k=>$v<br />\n";
}
関数を使って返り値は配列にしてあります。検索結果のブール値と探し当てたレコード、検索対象になったドメインを返すようになっています。もし検索できなかったらレコードも空になって返ってきます。



