DNS Aレコード要求を収集する方法は?

DNS Aレコード要求を収集する方法は?

ARedHat PCに出ているすべての記録を記録する必要があります。私は以下を使用しようとしていますtcpdump

tcpdumpdns=OUTPUT-FILENAME-HERE
nohup tcpdump -K dst port 53 -w $tcpdumpdns > /dev/null 2>&1 &

次の出力ファイルが生成されます。

19:26:12.185392 IP 172.16.0.6.57977 > google-public-dns-a.google.com.domain: 51198+ A? yahoo.com. (27)

だから、以下を得るために処理する必要がありますyahoo.com

echo $tcpdumpdns | awk '/ A\? / {u = NF - 1; print $u}' | sed 's/^www.//g; s/.$//g' | sort -u

発信するすべてのロギング要求を収集するためのより良いソリューションはありますかA

ps:HTTPS経由でアクセスできる最新のWebサイトのリストを取得するには、DNS Aレコードのみを収集します。これにより、HTTPSEverywhere Firefoxアドインのxmlファイルを生成できます。これはスクリプトの一部にすぎません。

ベストアンサー1

Wiresharkがインストールされていない場合

tcpdumpdns=/tmp/tcpdumps
tcpdump -lvi any "udp port 53" | tee $tcpdumpdns

あなたのために働く必要があります。出力を最後から2番目の値に制限したいので、次のコマンドを使用してログファイルを解析します。

grep -E 'A\?' $tcpdumpdns |sed -e 's/^.*A? //' -e 's/ .*//'|sort -u

続行するには、次の手順を実行します。

tcpdump -lvi any "udp port 53" 2>/dev/null|grep -E 'A\?'|awk '{print $(NF-1)}'

そうすればいいのです。 (ここではsedとawkを入れ替えて使用できます。私はawkを選択します。)

おすすめ記事