【PHP8.x】dns_check_record関数の使い方

作成日: 更新日:

dns_check_record関数は、指定されたホスト名またはIPアドレスのDNS (Domain Name System) レコードが存在するかどうかを確認する関数です。この関数は、Webサイトのドメインやメールサーバーのホスト名などが、DNS上で適切に登録されているかをチェックしたい場合に非常に役立ちます。

関数を使用する際には、最初にチェックしたいホスト名またはIPアドレスを文字列として渡します。必要に応じて、第二引数としてDNSレコードのタイプを文字列で指定することも可能です。たとえば、「MX」(メールエクスチェンジャー)レコードを指定して、そのドメインがメールサーバーを持っているかを確認したり、「A」(アドレス)レコードを指定して、IPアドレスへのマッピングが存在するかを確認したりできます。他にも、「NS」(ネームサーバー)、「CNAME」(正規名)、「TXT」(テキスト)、「AAAA」(IPv6アドレス)など、様々なレコードタイプをチェックできます。

指定したDNSレコードが実際に存在すれば、この関数は論理値の true を返します。もしレコードが存在しない場合や、DNSサーバーとの通信に問題があった場合は論理値の false を返します。この関数は、DNSレコードの具体的な情報を取得するものではなく、あくまで「存在するか否か」のみを判定することに注意してください。したがって、ドメインが有効であるか、あるいは特定のサービスが利用可能であるかをシンプルに確認したい場合に、この dns_check_record 関数は非常に便利なツールとなります。

基本的な使い方

構文(syntax)

<?php
// ホスト名に指定されたDNSレコードタイプが存在するかどうかを確認します。
// 存在すれば true、存在しなければ false を返します。

$hostname = "example.com"; // 確認したいホスト名
$type = "A";               // 確認したいDNSレコードタイプ (例: "A", "MX", "NS", "TXT")

if (dns_check_record($hostname, $type)) {
    echo "ホスト名 '{$hostname}' に {$type} レコードが存在します。\n";
} else {
    echo "ホスト名 '{$hostname}' に {$type} レコードは存在しません。\n";
}
?>

引数(parameters)

string $hostname, string $type = 'MX'

  • string $hostname: チェック対象のホスト名(ドメイン名)を指定する文字列
  • string $type = 'MX': 取得するDNSレコードの種類を指定する文字列。デフォルトは'MX'(Mail Exchanger)

戻り値(return)

bool

指定されたホスト名に対してDNSレコードの存在を確認し、成功した場合はTRUEを、失敗した場合はFALSEを返します。

【PHP8.x】dns_check_record関数の使い方 | いっしー@Webエンジニア