一括リバースDNSルックアップにDIGを使用する

一括リバースDNSルックアップにDIGを使用する

特定のネームサーバーに対して一括リバースDNSクエリを実行したいと思います。

現在こことGoogleで検索した結果です。 1つの項目に対して機能させるには、次のコマンドを使用しました。

dig @NAMESERVER -x 10.10.10.10 +short

これがまさに私が望むものです。ただし、複数のIPアドレスに対してこれを実行すると失敗します。私がしたことは、テストのために2つのIPアドレスをリストすることでした。

次のコマンドを使用しようとしています。

dig @NAMESERVER -x -f dnsquery.txt +short

何の結果も出ません。私が何を間違っているのでしょうか?

入力ファイルには2つの行があり、各行には1つのIPアドレスがあります。

10.10.10.10
10.10.10.11 

答え1

thrigが述べたようにループから呼び出すことができますdig

たとえば、この小さなbashスクリプトを使用して、次のファイルに保存できますbulkreverse.sh

#!/bin/bash
filename='ip_in.txt' # name of file with IPs to handle
nameserver='8.8.8.8' # nameserver to query

for ip in `cat $filename`
do
echo 'Handling reverse DNS for $ip'
dig @$nameserver -x $ip +short
done

この変数は、filenameIPアドレスのリスト(1行に1つのIPアドレスなど)を含むファイル名を指定します。nameserver照会するネームサーバー。

スクリプトをというファイルに保存した場合は、bulkreverse.sh以下を実行して実行可能にする必要があります。

chmod +x bulkreverse.sh

後で実行できます

./bulkreverse.sh

これが役立つことを願っています!

答え2

その数が多い場合は、GNU Parallel が作業を高速化するのに役立ちます。

nameserver=80.80.81.81
parallel -j100 --retries 3 dig @$nameserver -x {} +short :::: ip_in.txt

答え3

awk以下を使用して、順方向アドレスを逆方向アドレスに変換できます。dig

awk -F. '{printf "%s.%s.%s.%s.in-addr.arpa\n",$4,$3,$2,$1}' dnsqueries.txt |
    dig +short ptr @NAMESERVER -f -

答え4

元のコードが機能しない理由は、-xファイルから読み取られたすべてのデータ行にコードを含める必要があるためです。これはマニュアルページに文書化されていますが、個人的には明確になると思います。

-f fileバッチモード:dig指定されたファイルで処理する検索要求のリストを読み取ります。ファイルの各行は、digコマンドラインインターフェイスを使用してクエリとして表示されるのと同じ方法で設定する必要があります。

最後の文は通訳であり、その行は「クエリでマイニングされるのと同じ方法で設定つまり、サンプルファイルには次のものを含める必要があります。

-x 10.10.10.10
-x 10.10.10.11 

ファイルが変更不可能であると仮定すると、それを使用してsed必要なコンテンツの前に追加し、-x結果を次にパイプすることができますdig

sed 's/^/-x /' dnsquery.txt | dig +short -f -

関連情報