用dnslib在Python中创建DNS数据包
使用dnslib和Python 2.6
我写了以下代码
#!/usr/bin/env python
from dnslib import *
import sys
a = DNSRecord.question(sys.argv[1])
print a.pack()
当我尝试做以下操作时
a = DNSRecord.question(sys.argv[1],"A MX NS AAAA dnssec trace multiline")
我遇到了这个错误:dnslib.dns.DNSError: QTYPE: 无效的反向查找: [A MX NS AAAA dnssec trace multiline]
我想做的事情其实很简单
就是构造一个数据包,并在里面设置一些标志,然后打印出这个打包的数据
使用dnslib可以做到这一点吗?
1 个回答
0
trace
和multiline
是专门针对 dig 工具的选项,它们会影响 dig 的行为,而不是网络协议本身。dnssec
这个选项会在一个叫 EDNS0 的特殊记录中设置一个标志,叫做DNSSEC OK
(也就是DO
)。你需要创建这个记录,并把它放在查询的“附加”部分。不过,dnslib 对 EDNS0 的支持非常差。在一个问题中,你不能同时放多个
QTYPE
(比如A MX NS AAAA
),每种类型都需要单独提问。