PowerShellでnslookupを使う方法|Resolve-DnsNameの使い方や、特定のオブジェクトのみフィルタリングする方法を解説

目次

スポンサードリンク

nslookupとは?

nslookup コマンドは、ホスト名とIPアドレスの変換(名前解決)を行うDNS関連のコマンドです。Windowsではコマンドプロンプトでも利用可能ですが、PowerShellからも同様に実行可能です。

基本的な構文は以下の通りです。

nslookup [ホスト名] [DNSサーバーのIPアドレス]

以下はPowerShellでnslookupコマンドを実行した例です。当ブログのホスト名を、GoogleのパブリックDNSサーバー(8.8.8.8)に問い合せしています。

PS C:\Users\username> nslookup uchy.me 8.8.8.8
サーバー:  dns.google
Address:  8.8.8.8

権限のない回答:
名前:    uchy.me
Address:  49.212.235.185

PowerShellにおける代替手段(Resolve-DnsName)

PowerShellには nslookup に相当する Resolve-DnsNameコマンド が用意されています。 基本的な構文は以下の通りです。

Resolve-DnsName [ホスト名] [-Server DNSサーバーのIPアドレス]

このコマンドはnslookupコマンドよりもより構造化された情報を返し、スクリプト内で扱いやすい形式になっています。PowerShellスクリプトでのDNS処理にはこちらがおすすめです。

PS C:\Users\username> Resolve-DnsName uchy.me -Server 8.8.8.8

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
uchy.me                                        A      300   Answer     49.212.235.185

特定のオブジェクトのみを取り出す方法

例えば、Resolve-DnsName の結果から IPAddress だけを抜き出したい場合、 Select-Object や Where-Object を使ってフィルタできます。以下のように書くと、目的のIPAdress部分の情報だけを取得できます。

PS C:\Users\username> Resolve-DnsName uchy.me -Server 8.8.8.8 | Where-Object { $_.IPAddress } | Select-Object -ExpandProperty IPAddress
49.212.235.185

特定のレコードタイプのみを取り出す方法

-Type パラメータを使って、特定のレコードタイプのみ指定して取得することができます。下記例では TXT レコードのみにフィルタリングして情報を取得しています。

PS C:\Users\username> Resolve-DnsName uchy.me -Server 8.8.8.8 -Type TXT

Name                                     Type   TTL   Section    Strings
----                                     ----   ---   -------    -------
uchy.me                                  TXT    3600  Answer     {v=spf1 a:www3445.sakura.ne.jp mx ~all}
uchy.me                                  TXT    3600  Answer     {google-site-verification=zwHRK84j_vItO2M
                                                                PKNUZPIqff6-d6iopFY5l9O-DfXE}

まとめ

PowerShellでは nslookup を直接使えますが、ネイティブの Resolve-DnsName コマンドレットの方がスクリプト化や柔軟性に優れています。用途に応じて使い分けるのがポイントです。


コマンドプロンプトのポケットリファレンス:Windows11対応版
Windows環境で開発やシステム管理を行うエンジニアにとって、コマンドプロンプトの知識は非常に重要なスキルセットです。こちらの書籍は初心者にもわかりやすく網羅的です。手元に置いておきたい一冊です。

PowerShellの基礎を一通り学べるおすすめ書籍