1

PHP で DNS レコード ルックアップを使用していて、ややこしい問題が発生しています。それぞれが異なるホストと異なる権威ネームサーバーを使用している 2 つの異なるドメインを調べました。私が確かに知っているこれらのドメインは両方とも CNAMES を持っています。

このオンライン ツールを使用して DNS レコードを検索しました: http://network-tools.com/ また、PHP の dns_get_record を使用して検索しました。A、NS、SOA、MX などはすべて戻ってきます。しかし、CNAMES はありません。false/空の配列を取得します。

どちらの場合も、これらのドメインの DNS コントロールにログインして、CNAME を確認できます。

なぜこれが起こっているのでしょうか?目標は、クライアントのドメインを会社のネームサーバーに変更する前に、すべての DNS レコードを一度に検索して保存できるようにすることです (外部で誤って電子メール設定をホストしないようにするため)。pop.domain.com のような CNAME は、ここではかなり重要ですが、私が見つけることができるルックアップでは、それらの存在を認めることはできません。

本当の問題はもちろん、PHP 関数がそれらを返さないことです。

しかし、他の場所でそれらを見つけることができないので、私は混乱しています。特に、DNS レコードを追加および削除できる場所でそれらを直接見ているためです。ここで言う:

pop.domain.com CNAME pop.secureserver.net 0 900

(PHP バージョン 5.2.6 Linux 2.6.9-67.0.15.plus.c4smp)

4

2 に答える 2

3

理由がわかったと思います。これは、このスレッドの「ゾーン転送」に関係していると思います特定のドメイン名のすべての DNS サブドメインを見つけることは可能ですか? .

私が期待するのは、 CNAME ルックアップからの A、NS、MX -- EVERYTHING ELSEと同じ機能です。(ほとんど非現実的な期待ではありません...)

dns_get_record("domain.com", DNS_CNAME, $authns_cname, $addtl_cname);

domain.com 用に設定されたすべての CNAMES が取り込まれた配列が返されることを期待しています。そうではありません。

  • 「www.domain.com」の単一の CNAME エントリを取得できます。それが私が渡したドメインであり、そのための CNAME がある場合です。
  • 「*.domain.com」の単一の CNAME エントリを取得できます。それが渡したドメインであり、そのドメインの CNAME が存在する場合です
  • domain.com、ワイルドカード検索の有無にかかわらず、すべての CNAMES/サブドメイン/第 3 レベル ドメインのレコードを保存するために、文字通りすべての CNAME レコードを取得することはできません。

質問を正しく表現する必要があったと思います(15番目の順列で有望な答えが見つかりました)。両方のネームサーバー (Dreamhost と私の会社) がこれに対して「保護」されていると思います。残りの DNS レコードと比較して、それほど機密情報ではないように思えますが。

于 2010-06-24T15:38:09.420 に答える
0
$www = dns_get_record("www.microsoft.com", DNS_CNAME);
  //print_r($www);
  //echo $www[0]['target'];
while ($www[0]['target']) {
  echo "<br/>-- ".$www[0]['target'];
  $www = dns_get_record($www[0]['target'], DNS_CNAME);
}
于 2012-06-21T13:27:52.933 に答える