# File lib/dnsruby/message/question.rb, line 38
  def set_qname(qname, write_PTR_to_qtype_if_ip = true)
    is_ipv4_addr_string = qname.is_a?(String) && IPv4::Regex.match(qname)
    is_ipv6_addr_string = qname.is_a?(String) && IPv6::Regex.match(qname)
    is_ip_addr_string = is_ipv4_addr_string || is_ipv6_addr_string

    is_ip_addr = [IPv4, IPv6].any? { |klass| qname.is_a?(klass) }

    if is_ipv4_addr_string
      @qname = IPv4.create(qname).to_name
    elsif is_ipv6_addr_string
      @qname = IPv6.create(qname).to_name
    else
      @qname = Name.create(qname)
    end

    #  If the name looks like an IP address then do an appropriate
    #  PTR query, unless the user specified the qtype
    if write_PTR_to_qtype_if_ip && (is_ip_addr || is_ip_addr_string)
      @qtype = Types.PTR
    end
    @qname.absolute = true
  end