【问题标题】:Check if field exists in DNS record using scapy使用 scapy 检查 DNS 记录中是否存在字段
【发布时间】:2016-07-22 21:40:47
【问题描述】:

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

answer = packet.an[0].rdata

导致错误:

AttributeError: rdata

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

if packet.haslayer(DNS):
    <code>

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

【问题讨论】:

    标签: python dns scapy


    【解决方案1】:

    你总是可以尝试一下。不过,可能不像您正在寻找的那样光滑。

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

    【讨论】:

      猜你喜欢
      • 2018-12-24
      • 2021-06-01
      • 2020-05-23
      • 2021-10-06
      • 1970-01-01
      • 2021-02-21
      • 2011-02-20
      相关资源
      最近更新 更多