module DomainProbeReport
IRC reply cards for local whois and dig probes ahead of registrar search.
Constants
- STYLE_BANNER
- TAG
Public Instance Methods
Source
# File lib/domain_probe_report.rb, line 24 def body_rows(whois:, dig:) rows = [] rows << whois_line(whois) rows << registrar_line(whois) if whois[:ok] && whois[:registrar] rows << expiry_line(whois) if whois[:ok] && whois[:expires] rows << nameserver_line(whois) if whois[:ok] && whois[:nameservers]&.any? rows.concat(dig_lines(dig)) rows.compact.reject { |line| line.to_s.strip.empty? }.first(5) end
Source
# File lib/domain_probe_report.rb, line 60 def dig_lines(dig) return ["DNS: #{dig[:error]}"] unless dig[:ok] lines = [] lines << "DNS A: #{dig[:a].join(' 路 ')}" if dig[:a]&.any? lines << "DNS AAAA: #{dig[:aaaa].join(' 路 ')}" if dig[:aaaa]&.any? lines << "DNS NS: #{dig[:ns].join(' 路 ')}" if dig[:ns]&.any? lines << "DNS MX: #{dig[:mx].join(' 路 ')}" if dig[:mx]&.any? lines << "DNS: NXDOMAIN" if dig[:nxdomain] && lines.empty? lines << "DNS: no records in short lookup" if lines.empty? lines end
Source
# File lib/domain_probe_report.rb, line 52 def expiry_line(whois) "Expires: #{TextUtil.squish(whois[:expires])}" end
Source
# File lib/domain_probe_report.rb, line 14 def format(domain:, whois:, dig:) IrcReply.card( tag: TAG, title: "#{domain} 路 whois & DNS", body_lines: body_rows(whois: whois, dig: dig), footer_parts: footer_meta(whois, dig), heading_style: STYLE_BANNER ) end
Source
# File lib/domain_probe_report.rb, line 56 def nameserver_line(whois) "NS (whois): #{whois[:nameservers].join(' 路 ')}" end
Source
# File lib/domain_probe_report.rb, line 48 def registrar_line(whois) "Registrar: #{TextUtil.squish(whois[:registrar])}" end
Source
# File lib/domain_probe_report.rb, line 34 def whois_line(whois) return "Whois: #{whois[:error]}" unless whois[:ok] if whois[:registered] bits = ["registered"] bits << whois[:status] if whois[:status] && !whois[:status].to_s.strip.empty? "Whois: #{bits.join(' 路 ')}" elsif whois[:status].to_s.downcase == "available" "Whois: no registration found (available)" else "Whois: no registration found" end end