これにより、DNSクエリのホスト名が印刷されます。
tshark -n -T fields -e dns.qry.name src port 53
dns.qry.name
値でフィルタリングしたり、合理的なプロキシを取得したりするにはどうすればよいですか?さまざまなバリエーションを試しましたが、tshark -n -T fields -e dns.qry.name src port 53 and dns query name contains '"foo"'
すべては機能しません。
ベストアンサー1
を使用すると簡単です。表示(wireshark)フィルタ比較キャプチャ(pcap)フィルタ。
tshark -n -T fields -e dns.qry.name -f 'src port 53' -Y 'dns.qry.name contains "foo"'
pcap-filter
キャプチャフィルタの機能については、マニュアルページを参照してください。これは非常に限られており、プロトコルを手動で分析する必要があります。ここでは、udpパケットのクエリ名が常に0x20バイト(DNS over UDPの場合)であり、クエリ名が253バイトを超えてはいけません。
$ printf foo | xxd -p
666f6f
$ tshark -n -T fields -e dns.qry.name -f "src port 53 and $(awk '
BEGIN{
for(i=0;i<250;i++) {
printf sep "(udp[%d]!=0&&((udp[%d:4]&0xffffff00)==0x666f6f00", i+20, i+20
c = c "))"; sep = "||"
}
print c
}')"