2016-07-22 84 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