回答:
ANYに対してクエリを実行すると、そのレベルではなく、それより下のレベルにあるすべてのレコードのリストが表示されます。
# try this
dig google.com any
ドメイン名が正確に「google.com」の場合、Aレコード、TXTレコード、NSレコード、MXレコードなどが返されます。ただし、子レコード(www.google.comなど)は返されません。より正確には、これらのレコードが存在する場合、それらを取得できます(MAY)。ネームサーバーがこれらのレコードを返さない場合(たとえば、応答のサイズを小さくするため)は、これらのレコードを返す必要はありません。
AXFRはゾーン転送であり、おそらくあなたが望むものです。ただし、これらは通常制限されており、ゾーンを制御しない限り使用できません。通常、権限のあるサーバー(下記の@ ns1.google.com)から、そして公開されていない可能性のあるネームサーバー(ステルスネームサーバー)から直接ゾーン転送を行います。
# This will return "Transfer failed"
dig @ns1.google.com google.com axfr
ゾーンを制御できる場合は、TSIGキーで保護された転送を取得するようにゾーンを設定できます。これは、クライアントが転送を許可するためにサーバーに送信できる共有秘密です。
Joshの回答を改善しました。dig
照会されたネームサーバーのキャッシュに既に存在するエントリのみが表示されることに気付いたので、(デフォルトのネームサーバーに依存するのではなく)SOAから信頼できるネームサーバーをプルする方が良いです。また、通常はセットアップの正確さに関心があるため、ワイルドカードIPのフィルタリングも無効にしました。
新しいスクリプトは、-x
拡張出力の-s NS
引数と特定のネームサーバーを選択する引数を取ります。dig -x example.com
#!/bin/bash
set -e; set -u
COMMON_SUBDOMAINS="www mail mx a.mx smtp pop imap blog en ftp ssh login"
EXTENDED=""
while :; do case "$1" in
--) shift; break ;;
-x) EXTENDED=y; shift ;;
-s) NS="$2"; shift 2 ;;
*) break ;;
esac; done
DOM="$1"; shift
TYPE="${1:-any}"
test "${NS:-}" || NS=$(dig +short SOA "$DOM" | awk '{print $1}')
test "$NS" && NS="@$NS"
if test "$EXTENDED"; then
dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
wild_ips=$(dig +short "$NS" "*.$DOM" "$TYPE" | tr '\n' '|')
wild_ips="${wild_ips%|}"
for sub in $COMMON_SUBDOMAINS; do
dig +nocmd $NS "$sub.$DOM" +noall +answer "$TYPE"
done | cat #grep -vE "${wild_ips}"
dig +nocmd $NS "*.$DOM" +noall +answer "$TYPE"
else
dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
fi
dig -t txt +nocmd $NS "$DOM" +noall +answer
(およびを変更$DOM
)します。
ゾーン転送を実行する機能がない場合、私はこの小さなbashスクリプトを書きましたdg
:
#!/bin/bash
COMMON_SUBDOMAINS=(www mail smtp pop imap blog en ftp ssh login)
if [[ "$2" == "x" ]]; then
dig +nocmd "$1" +noall +answer "${3:-any}"
wild_ips="$(dig +short "*.$1" "${3:-any}" | tr '\n' '|')"
wild_ips="${wild_ips%|}"
for sub in "${COMMON_SUBDOMAINS[@]}"; do
dig +nocmd "$sub.$1" +noall +answer "${3:-any}"
done | grep -vE "${wild_ips}"
dig +nocmd "*.$1" +noall +answer "${3:-any}"
else
dig +nocmd "$1" +noall +answer "${2:-any}"
fi
現在はdg example.com
、DNSレコードのきれいなリストを取得するため、またはdg example.com x
他の人気のあるサブドメインの束を含めるために使用しています。
grep -vE "${wild_ips}"
などのワイルドカードDNSエントリの結果である可能性のあるレコードを除外します* 10800 IN A 1.38.216.82
。それ以外の場合、ワイルドカードエントリを使用すると、各のレコードがあるかのように表示されます$COMMON_SUBDOMAN
。
注:これはCloudFlareなどの一部のDNSプロバイダーによってブロックされるANY
クエリに依存しています。
dig -t txt +nocmd "$1" +noall +answer
(および変更"*.$1"
など)して、ドメインのTXTレコードを検査します。
host -a
と同様に機能しdig any
ます。
例えば:
$ host -a google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10403
;; flags: qr rd ra; QUERY: 1, ANSWER: 18, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN ANY
;; ANSWER SECTION:
google.com. 1165 IN TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
google.com. 53965 IN SOA ns1.google.com. dns-admin.google.com. 2014112500 7200 1800 1209600 300
google.com. 231 IN A 173.194.115.73
google.com. 231 IN A 173.194.115.78
google.com. 231 IN A 173.194.115.64
google.com. 231 IN A 173.194.115.65
google.com. 231 IN A 173.194.115.66
google.com. 231 IN A 173.194.115.67
google.com. 231 IN A 173.194.115.68
google.com. 231 IN A 173.194.115.69
google.com. 231 IN A 173.194.115.70
google.com. 231 IN A 173.194.115.71
google.com. 231 IN A 173.194.115.72
google.com. 128 IN AAAA 2607:f8b0:4000:809::1001
google.com. 40766 IN NS ns3.google.com.
google.com. 40766 IN NS ns4.google.com.
google.com. 40766 IN NS ns1.google.com.
google.com. 40766 IN NS ns2.google.com.
host -a
は有用なコマンドではないと言っているのではなく、OPが求めていることを実行しないだけです。
Windowsの場合:
ドメインのDNSレコードのステータスを確認する必要がある場合や、ネームサーバーを確認して、サーバーが取得しているレコードを確認する必要がある場合があります。
[スタート]> [コマンドプロンプト]に移動するか、[実行]> [CMD]を選択して、Windowsコマンドプロンプトを起動します。
NSLOOKUPと入力してEnterキーを押します。デフォルトのサーバーはローカルDNSに設定され、アドレスはローカルIPになります。
検索するDNSレコードタイプを設定します。set type=##
ここで、##はレコードタイプです。Enter キーを押します。レコードタイプとしてANY、A、AAAA、A + AAAA、CNAME、MX、NS、PTR、SOA、またはSRVを使用できます。
次に、クエリを実行するドメイン名を入力してEnterキーを押します。この例では、Managed.comを使用します。
NSLOOKUPは、入力したドメインのレコードエントリを返します。
クエリするネームサーバーを変更することもできます。これは、DNSが完全に伝播する前にレコードをチェックする場合に役立ちます。ネームサーバーを変更するには、server [name server]と入力します。[ネームサーバー]を、使用するネームサーバーに置き換えます。この例では、これらをNSA.managed.comとして設定します。
変更したら、必要に応じてクエリタイプを変更し(ステップ3)、次に新しい新しいドメインを入力します(ステップ4)。
Linuxの場合:
1)Digコマンドを使用してDNSレコードを確認するDigはドメイン情報を表しますgroperはDNSネームサーバーに問い合わせるための柔軟なツールです。DNSルックアップを実行し、照会されたネームサーバーから返された回答を表示します。ほとんどのDNS管理者は、digを使用してDNSの問題をトラブルシューティングします。これは、その柔軟性、使いやすさ、および出力の明確さのためです。他の検索ツールは、掘るよりも機能が少ない傾向があります。
2)NSlookupコマンドを使用してDNSレコードを確認するNslookupは、インターネットドメインネームサーバーを照会するプログラムです。Nslookupには、対話型と非対話型の2つのモードがあります。
インタラクティブモードを使用すると、ユーザーはネームサーバーにさまざまなホストとドメインに関する情報を照会したり、ドメイン内のホストのリストを印刷したりできます。
非対話モードは、ホストまたはドメインの名前と要求された情報だけを出力するために使用されます。これは、DNS関連の問題の確認とトラブルシューティングを支援するネットワーク管理ツールです。
3)ホストコマンドを使用してDNSレコードを確認するhostは、DNSルックアップを実行するためのシンプルなユーティリティです。通常、名前をIPアドレスに、またはその逆に変換するために使用されます。引数またはオプションが指定されていない場合、hostはコマンドライン引数とオプションの短い要約を出力します。
1つのインスタンスでドメインのすべてのDNSレコードを取得する簡単な方法はありません。たとえば、特定のレコードのみを表示できます。特定のドメインのAレコードを表示したい場合は、コマンドdig a(type of record)domain.comを使用できます。これは、そのドメインで表示したい他のすべてのタイプのレコードと同じです。
コマンドラインインターフェイスに慣れていない場合は、mxtoolbox.comなどのサイトを使用することもできます。Wichは、ドメインのレコードを取得するための非常に便利なツールです。
これがあなたの質問に答えてくれることを願っています。