【Bash】「Bash」で「ドメイン名」から「IPアドレス」を調べる方法
Shell Script / シェルスクリプト
【Bash】
「Bash」で「ドメイン名」から「IPアドレス」を調べる方法
「Bash」で「ドメイン名」から「IPアドレス」を調べる方法をまとめています。
「Bash」には、
「IPアドレス」が調べられる「コマンド」に、
・「whois」 = ドメイン情報を表示する
・「dig」 = ドメイン名からIPアドレスを調べる
・「host」 = ドメイン名からIPアドレスを調べる
・「nslookup」 = ドメイン名からIPアドレスを調べる
などが用意されている。
詳しくは、
下記をご参照ください。
「Bash」の「IPアドレス」が調べられる「コマンド」
シェルスクリプト「Bash」には、
「ドメイン名」から「IPアドレス」を調べる「コマンド」が
いくつか用意されている。
「IPアドレス」が調べられる「コマンド」
・「whois」 = ドメイン情報を表示する
・「dig」 = ドメイン名からIPアドレスを調べる
・「host」 = ドメイン名からIPアドレスを調べる
・「nslookup」 = ドメイン名からIPアドレスを調べる
Back
「whois」コマンドの使い方
「whois」サービスから情報を取得できる。
「whois」サービスは、ドメイン名の所有者・所属団体・などや、技術的な問合せ用のメールアドレスを検索することができる。
書式
whois オプション ドメイン
オプション
-a | ARIN(American Registry for Internet Numbers)データベースを使用する。「APNIC」および「RIPE」以外の情報がある。 |
-A | APNIC(Asia/Pacific Network Information Center)データベースを使用する。 |
-b | Network Abuse Clearinghouseのデータベースを使用する。 |
-d | 米国国防省(US Department of Defense)のデータベースを使用する。。 |
-g | 米国の軍以外の連邦政府のデータベースを使用する。 |
-h | 指定したホストを使用する。 |
-i | Network Solutions Registry for Internet Numbers(whois.networksolutions.com)のデータベースを使用する。 |
Back
「dig」コマンドの使い方
「dig」コマンドとは
ホスト名やIPアドレスから、それぞれの関連する情報を調べるコマンド。
DNSサーバへドメイン名を問い合せるためのパケットを送信する。
「@DNSサーバ」に、問合せたいサーバのホスト名・IPアドレスを指定する。
ドメインを調べたい場合は、ドメイン名を指定する。
「dig」コマンドの書式
dig @DNSサーバ ドメイン 検索タイプ 検索クラス 検索オプション・・・・
dig @server ドメイン名 query-type
dig @server IPアドレス query-type
「検索タイプ」の種類
Query-Type | 解説 |
A | ネットワークアドレス (省略時) |
NS | ネームサーバ |
MX | メールサーバの情報 |
SOA | SOA 情報 |
ANY | 知っているすべての情報 |
a | ネットワークアドレス |
any | 指定されたドメイン情報 |
mx | ドメインのメール交換情報 |
ns | ネームサーバ |
soa | ゾーン権限者レコード |
hinho | ホスト情報 |
axfr | ゾーン転送情報 |
txt | 任意の文字列 |
「検索クラス」の種類
in | インタネットクラスドメイン |
any | 任意、もしくは、すべてのクラス情報 |
「オプション」の種類
-f ファイル名 | 問合せした内容を記述したファイルを指定した実行する。 |
-x | 逆アドレス交換で問合せを行う。 |
-p ポート番号 | 標準ポート以外のDNSサーバへ問合せるポート番号を指定できる。 |
-t | バッチモードで実行した際の時間間隔を指定する。 |
使用例
dig ホスト名 | ホスト名からIPアドレスを検索する。 |
dig IPアドレス | IPアドレスからホスト名を検索する。 |
dig ホスト名 mx | ホスト名にメール交換用のホストが定義されているか確認する。 |
dig www.xxx.com. | 自分のネットワーク外にあるホストのIPアドレスを検索する。必ずホスト名の最後に「.」を付ける。 |
dig 自分のDNSホスト名. DNSサーバー名.
dig ns.xxx.ne.jp. @xxx.com.
| 自分のネットワーク外にあるDNSサーバーを使ってホスト名を検索する。 |
ホスト名などの最後に「.」をつけることで、外部のネットワークであることを明示する。
Back
「host」コマンドの使い方
「host」コマンドとは
nameサーバからホスト情報を取得できる。
ホスト名を指定した時は順引き検索をする。
書式
host オプション ホスト名
オプション
-a | 全ての情報を表示できる。 |
-l | ドメイン名を一覧表示する。 |
-r | 再帰的な問い合わせを抑止する。 |
-t PRタイプ | DNSサーバが対応する検索タイプを指定する。 |
Back
「nslookup」コマンドの使い方
「nslookup」コマンドとは
DNSサーバに名前解決の問い合わせを行う。
指定したホスト名をDNSサーバーに問合せ、情報を取得する。
引数の指定がない場合は、対話モードとなる。
nslookupコマンドは、DNSクライアントの名前解決機能を手動実行するためのコマンド。
正引き/逆引き、Aレコード/NSレコード/MXレコードなどのレコード種類の絞込み検索や、再帰検索/イテレイティブ検索、DNSサーバの任意切り替え、デバッグの実行など、さまざまなオプションからDNS検索の診断が行える。
単にDNS検索を行いたいだけの場合にも、十分な機能を提供するだろう。
「nslookup」コマンドの書式
nslookup[ -setコマンド・オプション][ ホスト・ドメイン名またはIPアドレス[ -DNSサーバ名]]
一般的なコマンド・ライン・モードのほか、ホスト・ドメイン名やIPアドレスが与えられていない場合には、対話モードで使用できる。
対話モードでは、コマンドを指定することで、DNSサーバ切り替えやゾーン情報の参照なども行える。
またLinuxでは、ユーザーのホーム・ディレクトリの「.nslookuprc」ファイルにオプションを記載して、実行時に自動指定しておくこともできる。
オプション
オプションなし | 対話モードで実行する |
setコマンド・オプション | setコマンドのオプションを指定して設定する |
ホスト・ドメイン名 または IPアドレス | ホスト・ドメイン名を指定した場合は正引き(Aレコード検索)、IPアドレスを指定した場合には逆引き(PTRレコード検索)が行われる |
DNSサーバ名 | 接続するDNSサーバを指定する |
name,-DNSサーバ名 | 情報を取得するためのDNSサーバを指定する。 |
対話モード
ホスト・ドメイン名またはIPアドレス[ DNSサーバ名]
下記のコマンド以外の文字列が入力された場合、
ホスト・ドメイン名またはIPアドレスが入力されたと解釈して、正引きまたは逆引きを実行する。DNSサーバ名も指定された場合には、そのDNSサーバに対して問い合わせを実行する
ホスト名 | 指定したホスト情報を取得する |
IPアドレス | 指定したIPアドレス情報を取得する |
set type=タイプ | 取得する情報のタイプを指定できる。A=IPアドレス、CNAME=正式なホスト名、MX=メールサーバ、PTR=ホスト名 |
exit | 対話モードの終了。 |
all | 現在の設定オプションを表示する |
debug | nodebug | デバッグ・モードを指定する。nodebugでこれを解除する |
d2 | nod2 | より詳細なデバッグ・モードを指定する。nod2でこれを解除する |
defname | nodefname |
デフォルト・ドメイン名を指定したホスト・ドメイン名に自動的に付加して検索する。例えばwwwと指定された場合に、デフォルト・ドメイン名であるexample.netを付加してwww.example.netとして検索する。nodefnameはこの動作を解除する
|
recurse | norecurse |
recurseは再帰検索を指定する。norecurseはイテレイティブ検索(反復検索: 再帰検索を行わずDNSサーバが管理するゾーン情報のみへの一度の検索のみ)を指定する
|
search | nosearch |
ドメイン・サーチ・リストを付加して検索する。nosearchはこれを解除する
|
vc | novc |
TCP接続による検索を行う。novcはUDP接続での通常の検索を行う(ただし通常は、回答されるデータ・サイズがUDPパケット・サイズを越えている場合(トランケーション・エラー)に、あらためてTCP接続で検索される)
|
domain=ドメイン名 | デフォルト・ドメイン名を指定する |
srchlist=ドメイン名[/ドメイン名 ……] |
ドメイン・サーチ・リストを指定する。複数のドメインを指定でき、検索時に指定されたホスト名に自動的に付加して、それぞれの名前で成功するまで試行する
|
root=DNSサーバ名 | ルートDNSサーバを指定する |
retry=試行回数 | 検索失敗時の試行回数を指定する |
timeout=タイムアウト秒数 | DNSサーバに対するタイムアウトを秒数で指定する |
querytype=検索レコード種別 | type=検索レコード種別 | 検索対象とするレコード種別を指定する。「'A'」「'SOA'」「'NS'」「'MX'」など |
port=ポート番号 |
DNSサーバへ接続する際のポート番号を指定する。通常は'53'番
|
class=クラス名 |
検索するレコード・クラスを指定する。通常はデフォルトである「'IN'(internet)」を指定する
|
msxfr | nomsxfr*1 | 高速ゾーン転送モード(many-answers)を指定する。nomsxfrはこれを解除する |
ixfrver=シリアル番号*1 | IXFR(Incremental Zone Transfers:差分ゾーン転送(RFC1995))モードを使用するとともに、現在のシリアル番号を指定する |
server DNSサーバ名 |
使用するDNSサーバを、指定したサーバに変更する(デフォルト・サーバの変更)。その際に、サーバのIPアドレスは現在指定されているDNSサーバを用いて検索する
|
lserver DNSサーバ名 |
使用するDNSサーバを、指定したサーバに変更する(デフォルト・サーバの変更)。その際に、サーバのIPアドレスはルート・ネーム・サーバから再帰検索して判断する
|
finger[ ユーザー名] |
現在のデフォルト・サーバに対してfinger(指定されたユーザー情報の問い合わせ)を実行する
|
root |
現在のデフォルト・サーバをルート・ネーム・サーバとする
|
ignoretc | noignoretc |
トランケーション・エラーを無視する。つまり、TCP接続による再度の検索は行わない。noignoretcはこれを解除する
|
ls[ オプション] ドメイン名[ >| > > 出力ファイル名] |
指定したドメインのゾーン情報を表示する。これは、通常プライマリ・サーバからセカンダリ・サーバに対して行うゾーン転送と同様の動作である。指定した出力ファイルに内容を出力して、新規作成または追記することもできる。また以下のオプションが指定できる
オプションなし | ホストのエイリアス(CNAMEレコード)のみを表示する |
-v | ホスト情報(HINFOレコード)のみを表示する |
-n | ホストのサービス情報(WKSレコード)のみを表示する |
-N | すべてのレコードを表示する |
-t レコードタイプ | 任意のレコードタイプを表示する。例えば「-t cname」は-aオプションと同義となる |
|
view 出力ファイル名*1 | (lsコマンドで作成された)出力ファイルを表示する |
exit | 対話モードを終了する |
help | ? | ヘルプを表示する |
Back