2024-06-28 19:12:48 发布
网友
我找了一个发送DNS请求的脚本。我发现了一个使用“DNSQR”的脚本,但我不确定这个命令是什么,也没有找到一个好的文档 这是整个命令:qd=DNSQR(qname="www.facebook.com")。在
qd=DNSQR(qname="www.facebook.com")
以下是整个脚本:
my_packet = sr1(IP(dst="8.8.8.8")/UDP(dport = 53)/DNS(rd=1,qd=DNSQR(qname=URL)))
让我们打开源代码:
class DNSQR(Packet): name = "DNS Question Record" fields_desc = [ DNSStrField("qname",""), ShortEnumField("qtype", 1, dnsqtypes), ShortEnumField("qclass", 1, dnsclasses) ]
其中ShortEnumField和{}是这样定义的:
ShortEnumField
因此,这是一种将所有这些信息打包到一个元素中的方法。在
让我们看看什么是DNS,什么是{}:
DNS
class DNS(Packet): name = "DNS" fields_desc = [ ShortField("id",0), BitField("qr",0, 1), BitEnumField("opcode", 0, 4, {0:"QUERY",1:"IQUERY",2:"STATUS"}), BitField("aa", 0, 1), BitField("tc", 0, 1), BitField("rd", 0, 1), BitField("ra", 0 ,1), BitField("z", 0, 3), BitEnumField("rcode", 0, 4, {0:"ok", 1:"format-error", 2:"server-failure", 3:"name-error", 4:"not-implemented", 5:"refused"}), DNSRRCountField("qdcount", None, "qd"), DNSRRCountField("ancount", None, "an"), DNSRRCountField("nscount", None, "ns"), DNSRRCountField("arcount", None, "ar"), DNSQRField("qd", "qdcount"), DNSRRField("an", "ancount"), DNSRRField("ns", "nscount"), DNSRRField("ar", "arcount",0) ]
让我们打开源代码:
其中}是这样定义的:
^{pr2}$ShortEnumField
和{因此,这是一种将所有这些信息打包到一个元素中的方法。在
让我们看看什么是}:
DNS
,什么是{相关问题 更多 >
编程相关推荐