2016-07-22 3 views
1

scapyを使用してDNSパケットを解析しています。すべてのDNS回答レコードにフィールドのすべてがあるわけではありません。scapyを使用してDNSレコードにフィールドが存在するかどうか確認します。

AttributeError: rdata 

RDATAフィールドは、アンサーに存在するかどうかを確認するテストの方法があります:例えば、いくつかの答えは、エラーでとても

answer = packet.an[0].rdata 

結果RDATA持っていないのですか?

if packet.haslayer(DNS): 
    <code> 

あなたが存在しないレイヤーを求めないように、レイヤーを確認できることがわかります。レイヤー内にフィールドの並行はありますか?

答えて

1

いつでもtry-exceptを実行できます。あなたが探しているものほど滑らかではないかもしれません。

try: 
    answer = packet.an[0].rdata 
except AttributeError: 
    # do something 
関連する問題