2016-07-22 97 views
1

我正在使用scapy解析DNS数据包。并非所有DNS答案记录都包含所有字段。例如,一些答案没有这么RDATA使用scapy检查DNS记录中是否存在字段

answer = packet.an[0].rdata 

导致错误:

AttributeError: rdata 

是否有测试的方式,看看是否RDATA场在回答中记录存在?我知道你可以检查图层

if packet.haslayer(DNS): 
    <code> 

所以你不要求层不存在。层内的字段是否有平行关系?

回答

1

您可以随时尝试除外。虽然可能不像您要找的那样光滑。

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