首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析Ruby中的CAA DNS记录

解析Ruby中的CAA DNS记录
EN

Stack Overflow用户
提问于 2020-12-17 02:33:41
回答 1查看 59关注 0票数 0

我正在尝试使用Ruby库来查找某个域的CAA记录。我期望它看起来像这样:

代码语言:javascript
复制
Resolv::DNS.open do |dns|
  ress = dns.getresources "ruby-lang.org", Resolv::DNS::Resource::CAA
  p ress.map(&:inspect)
end

但是CAA记录类型不是已定义的Resolv::DNS::Resource。有人知道如何查找CAA记录吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-17 03:21:20

具有麻省理工学院许可证的There exists a gem提供以下功能:

代码语言:javascript
复制
class Resolv::DNS::Resource::IN::CAA < Resolv::DNS::Resource
  TypeValue = 257
  ClassValue = IN::ClassValue
  ClassHash[[TypeValue, ClassValue]] = self

  def initialize(flags, tag, value)
    # https://tools.ietf.org/html/rfc8659#section-4.1
    #    +0-1-2-3-4-5-6-7-|0-1-2-3-4-5-6-7-|
    #    | Flags          | Tag Length = n |
    #    +----------------|----------------+...+---------------+
    #    | Tag char 0     | Tag char 1     |...| Tag char n-1  |
    #    +----------------|----------------+...+---------------+
    #    +----------------|----------------+.....+----------------+
    #    | Value byte 0   | Value byte 1   |.....| Value byte m-1 |
    #    +----------------|----------------+.....+----------------+
    @flags = flags
    @tag = tag
    @value = value
  end

  ##
  # Critical Flag

  attr_reader :flags

  ##
  # Property identifier

  attr_reader :tag

  ##
  # A sequence of octets representing the Property Value

  attr_reader :value

  def encode_rdata(msg)
    msg.put_bytes(@flags)
    msg.put_string(@tag)
    msg.put_bytes(@value)
  end

  def self.decode_rdata(msg)
    flags = msg.get_bytes(1)
    tag = msg.get_string
    value = msg.get_bytes
    new(flags, tag, value)
  end
end

结果如下:

代码语言:javascript
复制
 Resolv::DNS.open do |dns|
 dns.getresources("google.com", Resolv::DNS::Resource::IN::CAA)
end
# => [#<Resolv::DNS::Resource::IN::CAA:0x00005580b4806738 
#      @flags="\x00", @tag="issue", @ttl=86400, @value="pki.goog">]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65329126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档