235

ドメインのすべての DNS レコードを一覧表示する方法はありますか?

dig や nslookup などについては知っていますが、これまでのところしかありません。たとえば、サブドメイン A レコードを次のように取得した場合

test A somedomain.co.uk

それから私が特にそれを求めない限り、例えば。

dig any test.somedomain.co.uk

見えない。

すべての DNS レコードが何であるかを正確に確認する方法はありますか (DNS マネージャーにアクセスしてレコードを確認する以外に) はありますか?

4

10 に答える 10

233

ANY に対してクエリを実行すると、そのレベルのすべてのレコードのリストが取得されますが、それより下のレコードは取得されません。

# try this
dig google.com any

ドメイン名が正確に「google.com」の場合、A レコード、TXT レコード、NS レコード、MX レコードなどが返されることがあります。ただし、子レコードは返されません (例: www.google.com)。より正確には、これらのレコードが存在する場合、これらのレコードを取得できます。ネーム サーバーは、そうしないことを選択した場合 (たとえば、応答のサイズを小さくするため)、これらのレコードを返す必要はありません。

AXFR はゾーン転送であり、おそらく必要なものです。ただし、これらは通常制限されており、ゾーンを制御しない限り使用できません。通常は、権限のあるサーバー (以下の @ns1.google.com) から直接ゾーン転送を実行し、多くの場合、公開されていないネーム サーバー (ステルス ネーム サーバー) からゾーン転送を実行します。

# This will return "Transfer failed"
dig @ns1.google.com google.com axfr

ゾーンを制御できる場合は、TSIG キーで保護された転送を取得するようにゾーンを設定できます。これは、転送を承認するためにクライアントがサーバーに送信できる共有シークレットです。

于 2013-10-11T18:30:35.287 に答える
37

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
于 2015-04-15T09:28:00.603 に答える
23

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.
于 2014-12-24T05:07:17.710 に答える
16

Windows の場合:

ドメインの DNS レコードのステータスを確認する必要がある場合や、ネーム サーバーをチェックして、サーバーが取得しているレコードを確認する必要がある場合があります。

  1. [スタート] > [コマンド プロンプト] に移動するか、[ファイル名を指定して実行] > [CMD] から Windows コマンド プロンプトを起動します。

  2. NSLOOKUP と入力し、Enter キーを押します。デフォルトのサーバーはローカル DNS に設定されており、アドレスはローカル IP になります。

  3. 検索する DNS レコード タイプを設定しますset type=##。## はレコード タイプです。Enter キーを押します。ANY、A、AAAA、A+AAAA、CNAME、MX、NS、PTR、SOA、または SRV をレコード タイプとして使用できます。

  4. 照会するドメイン名を入力し、Enter キーを押します。この例では、Managed.com を使用します。

  5. NSLOOKUP は、入力したドメインのレコード エントリを返します。

  6. 照会しているネーム サーバーを変更することもできます。これは、DNS が完全に伝播される前にレコードをチェックする場合に役立ちます。ネームサーバーの種類を変更するには[ネームサーバー]。[name server] を、使用するネーム サーバーに置き換えます。この例では、これらを NSA.managed.com として設定します。

  7. 変更したら、必要に応じてクエリ タイプを変更し (ステップ 3)、新しいドメインを入力します (ステップ 4.)。

Linux の場合:

1) Dig コマンドを使用して DNS レコードをチェックする Dig はドメイン情報を表します groper は、DNS ネーム サーバーに問い合わせるための柔軟なツールです。DNS ルックアップを実行し、照会されたネーム サーバーから返された回答を表示します。ほとんどの DNS 管理者は、その柔軟性、使いやすさ、および出力の明確さから、DNS の問題のトラブルシューティングに dig を使用しています。他の検索ツールは、dig よりも機能が少ない傾向があります。

2) NSlookup コマンドを使用して DNS レコードをチェックする Nslookup は、インターネット ドメイン ネーム サーバーにクエリを実行するプログラムです。Nslookup には、対話型と非対話型の 2 つのモードがあります。

対話モードでは、ユーザーはさまざまなホストやドメインに関する情報をネーム サーバーに照会したり、ドメイン内のホストのリストを出力したりできます。

非対話モードは、ホストまたはドメインの名前と要求された情報のみを出力するために使用されます。これは、DNS 関連の問題のチェックとトラブルシューティングに役立つネットワーク管理ツールです。

3) ホスト コマンドを使用して DNS レコードをチェックする ホストは、DNS ルックアップを実行するためのシンプルなユーティリティです。通常、名前を IP アドレスに、またはその逆に変換するために使用されます。引数またはオプションが指定されていない場合、host はコマンド ライン引数とオプションの短い要約を出力します。

于 2019-04-25T09:01:04.547 に答える
14
  1. ゾーン転送は、すべてのサブドメイン レコードがあることを確認する唯一の方法です。DNS が正しく構成されている場合、通常は外部ゾーン転送を実行できないはずです。

  2. scans.ioプロジェクトには、ダウンロードしてサブドメインを検索できる DNS レコードのデータベースがありますこれには、87 GB の DNS データをダウンロードする必要があります。代わりに、 https ://hackertarget.com/find-dns-host-records/ でデータのオンライン検索を試すこともできます。

于 2014-09-14T13:14:08.967 に答える