1

Pythonモジュールscapyを使用して、同等のコマンドを実行したい

dig ANY google.com @8.8.4.4 +notcp

簡単なサンプルコードを作成しました:

from scapy.all import *

a = sr(IP(dst="8.8.4.4")/UDP(sport=RandShort(),dport=53)/DNS(qd=DNSQR(qname="google.com",qtype="ALL",qclass="IN")))

print str(a[0])

そして、パケットを送受信しますが、パケットをスニッフィングすると、応答はServer failure.

Wireshark スクリーンショット - scapy

Wireshark スクリーンショット - 掘る

コマンド自体をスニッフィングするdigと、ほぼ同じように見えますが、正しい応答が得られ、別のICMP - Destination unreachableパケットも送信されません。これは、scapy で送信した場合にのみ表示されます。

さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。多分誰かがこれで私を助けることができます..

編集:

閉じられている に応答を送信しようとしたため、ICMP - Destination unreachableパケットが送信された可能性がありますか? しかし、なぜ機能する必要があるのでしょうか?!8.8.4.4sportdig

4

1 に答える 1

0

scapy で動作する Python コードを取得しました。

srp(Ether()/IP(src="192.168.1.101",dst="8.8.8.8")/UDP(sport=RandShort(),dport=53)/DNS(rd=1,qd=DNSQR(qname="google.com",qtype="ALL",qclass="IN"),ar=DNSRROPT(rclass=3000)),timeout=1,verbose=0)

Wireshark では、正しい応答が表示されるようになりました: Wireshark のスクリーンショット

しかし、私はまだICMP - Destination unreachableパケットを取得しています..理由はわかりません..

于 2016-08-05T04:04:33.647 に答える