nslookup - DNSの名前解決を調べる

にメンテナンス済み

nslookupコマンドは、DNS サーバーに問い合わせて、ドメイン名と IP アドレスの対応(名前解決の結果)を調べるためのコマンドです。

「サイトにつながらない」「メールが届かない」といったトラブルのとき、原因が DNS にあるのかどうかを切り分ける最初の一手として使えます。

nslookupコマンドの基本構文

nslookup [-<オプション>] [<調べたい名前またはIPアドレス>] [<問い合わせ先のDNSサーバー>]

引数を付けずに実行すると、後述する対話モードになります。

ドメイン名からIPアドレスを調べる

調べたいドメイン名を指定して実行します。

nslookup example.com
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>nslookup example.com
サーバー: dns.google
Address: 8.8.8.8
権限のない回答:
名前: example.com
Addresses: 2606:2800:21f:cb07:6820:80da:af6b:8b2c
93.184.216.34
C:\users\user>

表示は大きく 2 つに分かれます。

  • 上の 2 行: 問い合わせを受け付けた DNS サーバー(PC に設定されているもの)の名前とアドレス
  • 下の部分: 調べたいドメイン名と、それに対応する IP アドレス
「権限のない回答」とは

「権限のない回答(Non-authoritative answer)」は、そのドメインを管理している DNS サーバー本人ではなく、キャッシュを持つ中継の DNS サーバーが答えたことを示します。通常の問い合わせではよく表示されるもので、エラーではありません。

表示される内容は環境によって異なります

上記の出力はあくまで一例です。DNS サーバーの名前や、返ってくる IP アドレスの数・順序は、ネットワーク環境や問い合わせるタイミングによって変わります。

IPアドレスからドメイン名を調べる(逆引き)

ドメイン名ではなく IP アドレスを指定すると、IP アドレスに対応するホスト名を調べる逆引きになります。

nslookup 8.8.8.8
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>nslookup 8.8.8.8
サーバー: dns.google
Address: 8.8.8.8
名前: dns.google
Address: 8.8.8.8
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

逆引きの設定(PTR レコード)がされていない IP アドレスでは、名前が見つからずエラーになることがあります。

また、問い合わせ先の DNS サーバー自身のアドレスに PTR レコードがない場合は、1 行目がサーバー: UnKnownと表示されます。これは問い合わせ結果とは無関係で、エラーではありません。

DNSサーバーを指定して問い合わせる

2 つ目の引数に DNS サーバーを指定すると、PC に設定されている DNS サーバーではなく、指定したサーバーに問い合わせます。

nslookup example.com 1.1.1.1

PC 既定の DNS サーバーと別のサーバーで結果が違う場合は、既定の DNS サーバーの設定やキャッシュに問題がある可能性があります。

また、DNS レコードを変更した直後に、変更が反映されているかを複数のサーバーで確認するときにも便利です。

レコードタイプを指定して調べる

DNS には、IP アドレス以外にもさまざまな種類の情報(レコード)が登録されています。-type=オプションで、調べるレコードの種類を指定できます。

nslookup -type=<レコードタイプ> <ドメイン名>
レコードタイプ説明
Aドメイン名に対応する IPv4 アドレス
AAAAドメイン名に対応する IPv6 アドレス
MXメールの配送先(メールサーバー)
NSそのドメインを管理するネームサーバー
TXTテキスト情報(SPF などメール認証の設定にも使われる)
CNAME別名(正規名への対応)
SOAドメインの管理情報
PTRIP アドレスに対応するホスト名(逆引き用)
ANYすべてのレコード(サーバーによっては応答しないことも)

メールサーバー(MXレコード)を調べる

nslookup -type=MX example.com

メールが届かないときに、送信先のメールサーバーが正しく設定されているかを確認できます。

ネームサーバー(NSレコード)を調べる

nslookup -type=NS example.com

ドメインの管理を、どの DNS サーバーが担当しているかを確認できます。ドメインの移管や DNS 設定の切り替え後に確認する用途で使われます。

TXTレコードを調べる

nslookup -type=TXT example.com

ドメイン所有権の確認用の文字列や、SPF などのメール認証の設定を確認できます。

対話モードを使う

引数を付けずにnslookupを実行すると、>のプロンプトが表示され、続けて何度も問い合わせができる対話モードになります。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>nslookup
既定のサーバー: dns.google
Address: 8.8.8.8
> set type=MX
> example.com
(MX レコードの結果が表示される)
> exit
C:\users\user>

対話モードでよく使うコマンドは以下のとおりです。

コマンド説明
set type=<タイプ>調べるレコードタイプを変更する
server <DNSサーバー>問い合わせ先の DNS サーバーを変更する
<ドメイン名>入力した名前を問い合わせる
exit対話モードを終了する

同じドメインについて、レコードタイプや DNS サーバーを変えながら何度も調べるときは、対話モードのほうが効率的です。

エラーメッセージの読み方

Non-existent domain

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>nslookup example.invalid
サーバー: dns.google
Address: 8.8.8.8
*** dns.google が example.invalid を見つけられません: Non-existent domain
C:\users\user>

問い合わせたドメイン名が、DNS 上に存在しないことを示します。ドメイン名のタイプミスや、ドメインの登録・有効期限切れが原因として考えられます。

DNS request timed out

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>nslookup example.com 192.0.2.1
サーバー: UnKnown
Address: 192.0.2.1
DNS request timed out.
timeout was 2 seconds.
*** UnKnown への要求がタイムアウトしました
C:\users\user>

表示内容は Windows のバージョンによって異なります。

DNS サーバーからの応答が時間内に返ってこなかったことを示します。DNS サーバーのアドレスが誤っている、ネットワークにつながっていない、ファイアウォールで DNS(UDP / TCP の 53 番ポート)が遮断されている、といった原因が考えられます。

ping との違いを理解しておく

pingは PC の名前解決の仕組み(hosts ファイルや DNS キャッシュを含む)を通してホスト名を解決しますが、nslookupは DNS サーバーに直接問い合わせます。そのため、pingでは名前解決できないのにnslookupでは成功する場合は、hosts ファイルやローカルのキャッシュなど、PC 側の設定が原因である可能性があります。逆に、nslookupの結果とpingが接続する先が違う場合も、hosts ファイルの記述が影響していることがあります。DNS キャッシュはipconfig /displaydnsで確認し、ipconfig /flushdnsで消去できます。

バッチファイルでの使い方

nslookupの出力をfindstrコマンドで絞り込むと、必要な行だけを取り出せます。

@echo off

nslookup -type=MX example.com | findstr /i /c:"mail exchanger"

|(パイプ)でnslookupの出力をfindstrに渡しています。findstrは検索文字列中の空白を「または」として扱うため、/c:を付けてmail exchangerという文字列全体で検索しています。これにより、MX レコードの行(MX preference = ..., mail exchanger = ...)だけが表示されます。

実際の出力は、調べるドメインの設定によって変わります。

出力形式に依存した処理は壊れやすい

nslookupの出力は、Windows のバージョンや表示言語、返ってくる情報によって形式が変わることがあります。出力の特定の行や位置を前提にした処理は、環境が変わると動かなくなる可能性があるため、動作確認を十分に行ってください。

関連記事

練習問題

練習問題

ドメインのメールサーバー(MX レコード)を調べるコマンドはどれでしょうか?

回答がサーバーに送信されることはありません
練習問題

nslookup example.com 1.1.1.1 の説明として正しいものはどれでしょうか?

回答がサーバーに送信されることはありません
#コマンドプロンプト #バッチファイル #コマンドライン #コマンド #ネットワーク #DNS