我正在使用scapy解析DNS数据包。并非所有DNS应答记录都包含所有字段。例如,一些答案没有rdata所以
answer = packet.an[0].rdata
导致错误:
AttributeError: rdata
有没有办法测试rdata字段是否存在于答案记录中?我知道你可以检查图层
if packet.haslayer(DNS):
<code>
所以你不要求不存在的图层。层内的字段是否存在并行?
答案 0 :(得分:1)
你总是可以尝试 - 除外。但是,可能不会像你正在寻找的那样光滑。
try:
answer = packet.an[0].rdata
except AttributeError:
# do something