シェルスクリプトリバースDNSルックアップ

シェルスクリプトリバースDNSルックアップ

リバースDNSルックアップを実行するためにシェルスクリプトを作成しようとしても機能しません。

基本的に私はこれをしたい:

dig -x 8.8.8.8 +short 

出力は次のとおりですgoogle-public-dns-a.google.com。出力ファイルに送りたいです。

現在私のコードは次のとおりです。

#!/bin/bash
#Read a file where per line there will be an IP address. The .in file is the input/sourcelist from which IP addresses are read
cat reverse_dns_lookup.in | while read line
#
do
    # Do a reverse lookup
    dig -x $line +short
done

スクリプトを実行しても何も起こらないようなので、呼び出すのではなく、まず次のようにdigスクリプトをテストすることをお勧めします。

echo dig -x $line +short

これでも出力は生成されません。私がここで何を見逃しているのでしょうか?

ベストアンサー1

reverse_dns_lookup.in含まれていると推定

-x 8.8.8.8
-x 127.0.0.1

それから:

$ dig -f reverse_dns_lookup.in +short
google-public-dns-a.google.com.
localhost.

-x既存のファイルの内容に追加してdigファイルを変更せずに呼び出すには、プロセス置換を使用します。

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +short

これにより、ループdig内の複数の呼び出しを防ぎますreverse_dns_lookup.inread

次に、出力を目的のファイルにリダイレクトします。

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +short >dig-results.txt

成功したクエリ結果とIPアドレスを関連付けるには:

$ dig -f <( sed 's/^/-x /' reverse_dns_lookup.in ) +noall +answer | awk '{ print $1, $NF }' >dig-results.txt

私が使用したサンプルファイルの場合は、次のようになります。

8.8.8.8.in-addr.arpa. google-public-dns-a.google.com.
1.0.0.127.in-addr.arpa. localhost.

存在するdig-results.txt

おすすめ記事