nslookupの返却値を一覧にするツールを作ってる時に学んだこと。
やりたいこと。
正常動作の場合は例えば
C:\Users\aaaa>nslookup 74.125.235.111
サーバー: XXXXXXXXXXXXX
Address: 192.168.1.1
名前: nrt19s02-in-f15.1e100.net
Address: 74.125.235.111
というときの「nrt19s02-in-f15.1e100.net」を取得。
エラーの場合は例えば
C:\Users\aaaa>nslookup 1.2.3.4
サーバー: XXXXXXXXXXXXX
Address: 192.168.1.1
*** XXXXXXXXXXXXX が 1.2.3.4 を見つけられません: Non-existent domain
というときの「*** XXXXXXXXXXXXX が 1.2.3.4 を見つけられません: Non-existent domain」を拾う。
以上です。細かいところは省きます。
ひっかかったところはエラーの時の文言です。
正常系は全部の文言が返ってきたのでそれをうまくやれたんですが、エラーのときはどうも文言が返却されない模様。
試しにファイルに出力してみると
C:\Users\aaaa>nslookup 1.2.3.4 > test.txt
*** XXXXXXXXXXXXX が 1.2.3.4 を見つけられません: Non-existent domain
欲しい文言がなんでか外に出てしまってファイルには
サーバー: XXXXXXXXXXXXX
Address: 192.168.1.1
としか書かれていない。
調べたら標準出力と標準エラーっていうのがあるんですね。
エラーの文言は標準エラーってやつらしいです。
2を書けば
C:\Users\aaaa>nslookup 1.2.3.4 2> test2.txt
サーバー: XXXXXXXXXXXXX
Address: 192.168.1.1
となってファイルには
*** XXXXXXXXXXXXX が 1.2.3.4 を見つけられません: Non-existent domain
と出力されました。