PHPでは、 CHECKDNSRR関数は非常に便利なツールであり、ドメイン名のDNSレコードを確認するために使用できます。ドメイン名のレコード、cNameレコードなどを検出するためによく使用されますが、メールExchange(MX)レコードを確認するためにも使用できます。これにより、ドメイン名にメールサーバーが構成されているかどうかを判断できます。この記事では、 CHECKDNSRR関数を使用してドメイン名のMXレコードを確認する方法を確認するための段階的に段階的に説明します。
checkdnsrrは、指定されたドメイン名が指定されたタイプのDNSレコードを持っているかどうかをチェックする関数です。関数の署名は次のとおりです。
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">checkdnsrr</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$hostname</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$type</span></span><span> = </span><span><span class="hljs-string">"any"</span></span><span> )
</span></span>$ hostname :チェックするドメイン名( example.comなどの完全なドメイン名になることができます)。
$タイプ:チェックするDNSレコードのタイプ、デフォルトは「任意」 、つまりすべてのレコードをチェックします。特定のタイプのレコード(MXレコード、レコードなど)のみを確認する必要がある場合は、 「MX」として指定できます。
ドメイン名にメールサーバーが構成されているかどうかを確認するには、 checkdnsrr関数を使用し、 $タイプを「mx」に設定できます。これが例です:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-string">"example.com"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">checkdnsrr</span></span><span>(</span><span><span class="hljs-variable">$domain</span></span><span>, </span><span><span class="hljs-string">"MX"</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ドメイン名 <span class="hljs-subst">$domain</span></span></span><span> 構成 MX 記録,通常、メールサーバーがあることを意味します。";
} </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">"ドメイン名 <span class="hljs-subst">$domain</span></span></span><span> 構成されていません MX 記録,メールサーバーがない場合があります。";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>上記のコードでは、最初にチェックするドメイン名example.comを指定します。次に、 checkdnsrr関数を使用して、MXレコードがあるかどうかを判断します。返品値が真である場合、ドメイン名にMXレコードが構成されており、メールサーバーがある可能性があります。 falseの場合、ドメイン名にMXレコードが構成されていないことを意味します。
CHECKDNSRR関数は、ドメイン名にMXレコードが構成されているかどうかのみを決定することができますが、特定のMXレコードコンテンツは返されません。メールサーバーのホスト名や優先度など、より詳細なMXレコードを取得する必要がある場合は、DNS_GET_RECORD関数と組み合わせてDNS_GET_RECORD関数を使用できます。この関数は、MXレコードの詳細を含む、指定されたタイプのすべてのDNSレコードを返すことができます。
DNS_GET_RECORDを介してMXレコードを取得および表示する方法を示す例を次に示します。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-string">"example.com"</span></span><span>;
</span><span><span class="hljs-comment">// 得る MX 記録</span></span><span>
</span><span><span class="hljs-variable">$records</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dns_get_record</span></span><span>(</span><span><span class="hljs-variable">$domain</span></span><span>, DNS_MX);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$records</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ドメイン名 <span class="hljs-subst">$domain</span></span></span><span> の MX 記録如下:<br>";
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$records</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$record</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"優先度: "</span></span><span> . </span><span><span class="hljs-variable">$record</span></span><span>[</span><span><span class="hljs-string">'pri'</span></span><span>] . </span><span><span class="hljs-string">" - メールサーバー: "</span></span><span> . </span><span><span class="hljs-variable">$record</span></span><span>[</span><span><span class="hljs-string">'target'</span></span><span>] . </span><span><span class="hljs-string">"<br>"</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">"ドメイン名 <span class="hljs-subst">$domain</span></span></span><span> 見つかりません MX 記録。";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>この例では、 DNS_GET_RECORDを使用して、指定されたドメイン名のMXレコードを取得します。返される結果は配列で、各要素はMXレコードの優先度( PRI )とターゲットメールサーバー(ターゲット)のアドレスを含むものです。
CHECKDNSRR関数を介して、ドメイン名にMXレコードが構成されているかどうかをすばやく判断し、ドメイン名に電子メールサービスがあるかどうかを推測できます。ただし、より詳細なMX記録情報が必要な場合は、 DNS_GET_RECORD関数を使用して使用できます。この組み合わせは、電子メール関連のDNS構成をより適切に解決および管理するのに役立ちます。
上記は、PHPのCHECKDNSRR関数を使用して、ドメイン名のMXレコードを確認する方法です。