マニュアルページを詳しく見てみると、答えは「いいえ」と確信しています。しかし、ホストレコードがdig
解析されるのを防ぐ方法はありますかCNAME
?
たとえば、
$ dig +short mail.yahoo.com A
edge.gycpi.b.yahoodns.net.
66.218.84.40
66.218.84.44
66.218.84.41
66.218.84.45
66.218.84.42
66.218.84.43
このホストの記録がないため、回答を受け取ることがA
できません。そういう点でA
他の記録型とは異なって扱われているようです。AAAA
私は成功しなかったとオプションを試しました+norecurse
。+noadditional
最初の行がFQDNである複数行があるかどうかを確認するために、スクリプトの応答を簡単に解析できますが、これを行うべきではないようです。
答え1
~によるとRFC 1034レコードタイプを要求できCNAME
、存在する場合はそのレコードタイプを受け取ります。
dig -t cname +short www.bbc.co.uk
www.bbc.co.uk.pri.bbc.co.uk.
A
ただし、記録を要求するが、次の方法で照会を許可しない方法はないようですCNAME
。
dig -t cname +short uk.www.bbc.co.uk.pri.bbc.co.uk # No output
もちろん、RFC 1034セクション3.6.2書いた、
ネームサーバーがドメイン名に関連付けられているリソースセットで必要なRRを見つけることが失敗した場合は、リソースセットに一致する
CNAME
クラスのレコードが含まれていることを確認してください。その場合、ネームサーバーはCNAME
応答にレコードを含め、レコードのデータフィールドで指定されたドメイン名からクエリを再開しますCNAME
。このルールの1つの例外は、CNAME
このタイプに一致するクエリが再起動されないことです。
RFC用語によると、しなければならない「この説明には明確な措置が記載されています。
必要な動作を得るには、dig
次のようないくつかのカスタムコードをラップする必要があります。
query=www.bbc.co.uk
result=$(dig -t cname +short "$query" | xargs)
[ -z "$result" ] && result=$(dig -t a +short "$query" | xargs)
printf "Result: %s\n" "$result"