:
DNS_CHECK_RECORD()は、 DNSサーバーのネットワーク接続と通常の操作に依存します。サーバーが到達できない場合、またはDNSクエリが実行されたときにネットワーク接続が中断された場合、関数がDNSレコードを取得できないため、ヌル値が返されます。
修正方法:
サーバーのネットワーク接続が正常かどうかを確認して、DNSサーバーにアクセスできることを確認してください。
pingまたはnslookupツールを使用して、ターゲットDNSサーバーが利用可能かどうかをテストします。
DNSサーバーが到達不可能な場合は、管理者に連絡するか、DNSサーバーを交換してください。
理由:
DNS_CHECK_RECORD()関数は、 A 、 MX 、 TXTなどの複数のタイプのDNSレコードをサポートします。誤ったまたはサポートされていないレコードタイプを渡すと、関数はnull値を返す場合があります。
修正方法:
dns_check_record()に渡されたDNSレコードタイプが有効であることを確認してください。たとえば、一般的なタイプには、 A 、 MX 、 CNAME 、 TXTなどが含まれます。
関数を呼び出してDNSレコードタイプをチェックするときにCheckDnsrr()を使用して、それらが正しいことを確認できます。
理由:
クエリドメイン名のDNSレコードが存在しない場合、 dns_check_record()はnull値を返します。この状況は、存在しない特定のドメイン名またはDNSレコードが構成されていない場合に特に一般的です。
修正方法:
クエリドメイン名が正しいかどうかを確認し、入力エラーを回避します。
ターゲットドメイン名のDNS構成を確認して、ドメイン名の関連レコードが正しく構成されていることを確認します。
管理するドメイン名の場合、DNS管理ツール(CPANEL、CloudFlareなど)を使用してログ構成を表示します。
理由:
DNSクエリは、ローカルまたは中間DNSキャッシュの影響を受ける場合があります。キャッシュ内のレコードが期限切れになったり不正確である場合、 dns_check_record()がnull値を返す可能性があります。
修正方法:
ローカルDNSキャッシュ(コマンドラインのIPConfig /flushdnsコマンドを使用)をクリアして、最新のDNSレコードがクエリになっていることを確認します。
問題が続く場合は、Google DNS(8.8.8.8および8.8.4.4)やCloudFlare DNS(1.1.1.1)など、使用しているDNSサーバーを交換してみてください。
理由:
場合によっては、PHPスクリプトがサーバー環境の許可制限の対象となる場合があり、その結果、DNSクエリが実行できません。特に共有ホスティングまたはいくつかの仮想プライベートサーバー(VPS)環境では、PHP構成は外部ネットワークリクエストを制限する場合があります。
修正方法:
PHP構成ファイル( PHP.INI )のDisable_Functions設定を確認して、 DNS_CHECK_RECORD()などのネットワーク関連の関数が無効になっていないことを確認してください。
サーバーのファイアウォールまたはセキュリティ構成で外部DNS要求がブロックされているかどうかを確認します。
理由:
DNS_CHECK_RECORD()関数は、ドメイン名とクエリタイプを含む複数のパラメーターを受け入れます。これらのパラメーターが誤ってフォーマットされている場合、または必要な値が欠落している場合、null値が返される場合もあります。
修正方法:
dns_check_record()に渡された最初のパラメーターが有効なドメイン名であることを確認してください。
2番目のパラメーター(レコードタイプ)が正しく渡されていることを確認し、それが合法的なタイプであることを確認してください。
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">dns_check_record</span></span><span>(</span><span><span class="hljs-string">'example.com'</span></span><span>, </span><span><span class="hljs-string">'A'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"A record exists."</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"No A record found."</span></span><span>;
}
</span></span>
理由:
コードに論理的なエラーが発生する場合があり、DNSレコードが存在する場合でも関数がnull値を返します。たとえば、間違った条件付き判断、繰り返しの呼び出しなど。
修正方法:
コードの条件付き判断を注意深く確認して、ロジックに問題がないことを確認してください。
デバッグ情報を印刷し、関数の戻り値とそのコールスタックを確認し、問題の根本原因を見つけることができます。