【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