nslookup と dig について

名前解決関連で良く使われるツールとして nslookupdig があります。

単純に名前を引くだけじゃなくて、特定サーバの IP アドレスを調べて、何か処理したいときにもよく使われますが、その際に IP アドレスだけを簡単に取得する方法を紹介します。

ちなみに、nslookupdig は、bind-utils がインストールされていないと使えないので、確認してインストールされていない場合には、事前にインストールしておきます。

bind-utils インストールRaw Code(S)Raw Code(T)
# rpm -qa | grep bind-utils

---- 上のコマンド実行結果、何も表示されなかったら以下を実行してインストール ----

# yum -y install bind-utils

# rpm -qa | grep bind-utils
bind-utils-9.8.2-0.30.rc1.el6.x86_64

nslookup を使って IP アドレスだけ取得

nslookup <ドメイン名> を実行するとネームサーバの IP アドレスとドメインの名前・IP アドレスが出力されますが、取得したいのは、ドメインの IP アドレスだけなので、grepcut を使って IP アドレスだけを取得します。

まずは、grep を使って、「Address」 が含まれている行を取得し、DNS サービスのポート番号 #53 が含まれている行を除いた後、cut を使ってスペース区切りでカットして、2番目のフィールドの値(ドメインの IP アドレス)を取得します。

nslookup を使って IP アドレスだけ取得Raw Code(S)Raw Code(T)
# nslookup server.etutsplus.com | grep "Address" | grep -v "#53" | cut -d" " -f2
157.7.140.25

dig を使って簡単に IP アドレスだけ取得

nslookup を使って一応、ドメインの IP アドレスは、取得できましたが、パイプラインを使って色んなツールと連携しないといけないので、少々面倒くさいです。

その時には、dig コマンドの +short オプションを使うと一発で取得できます。

dig を使って簡単に IP アドレスだけ取得Raw Code(S)Raw Code(T)
# dig server.etutsplus.com +short
157.7.140.25

ドメインの IP アドレスを取得する際には、nslookup より dig の方が、簡単ですね。