使用scapy检查DNS记录中是否存在字段

时间:2016-07-22 21:40:47

标签: python dns scapy

我正在使用scapy解析DNS数据包。并非所有DNS应答记录都包含所有字段。例如,一些答案没有rdata所以

answer = packet.an[0].rdata

导致错误:

AttributeError: rdata

有没有办法测试rdata字段是否存在于答案记录中?我知道你可以检查图层

if packet.haslayer(DNS):
    <code>

所以你不要求不存在的图层。层内的字段是否存在并行?

1 个答案:

答案 0 :(得分:1)

你总是可以尝试 - 除外。但是,可能不会像你正在寻找的那样光滑。

try:
   answer = packet.an[0].rdata
except AttributeError:
   # do something