A
RedHat 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を選択します。)