使用 scapy 检查 DNS 记录中是否存在字段
Check if field exists in DNS record using scapy
我正在使用 scapy 解析 DNS 数据包。并非所有 DNS 应答记录都包含所有字段。例如,有些答案没有 rdata,所以
answer = packet.an[0].rdata
导致错误:
AttributeError: rdata
有没有一种方法可以测试答案记录中是否存在 rdata 字段?我知道你可以检查图层
if packet.haslayer(DNS):
<code>
所以你不会要求不存在的图层。层内字段是否有平行?
你总是可以试试 try-except。不过,可能没有您要找的那么光滑。
try:
answer = packet.an[0].rdata
except AttributeError:
# do something
我正在使用 scapy 解析 DNS 数据包。并非所有 DNS 应答记录都包含所有字段。例如,有些答案没有 rdata,所以
answer = packet.an[0].rdata
导致错误:
AttributeError: rdata
有没有一种方法可以测试答案记录中是否存在 rdata 字段?我知道你可以检查图层
if packet.haslayer(DNS):
<code>
所以你不会要求不存在的图层。层内字段是否有平行?
你总是可以试试 try-except。不过,可能没有您要找的那么光滑。
try:
answer = packet.an[0].rdata
except AttributeError:
# do something