module DnsChecker

Constants

DNS
VERSION

Public Class Methods

on_our_nameservers?(domain_names:, nameservers:, groups: 25) click to toggle source
# File lib/dns_checker.rb, line 14
def self.on_our_nameservers?(domain_names:, nameservers:, groups: 25)
  nameserver_ips = nameservers.each_with_object(Set.new) do |ns_name, ips|
    Nameserver.new(name: ns_name).a_records.each { |a| ips << a }
  end
  threads = []
  result = {}
  domain_names.in_groups(groups, false) do |group|
    threads << Thread.new do
      domains = group.map { |g| Domain.new(g) }
      domains.each do |domain|
        result[domain] = domain.nameserver_ips.all? { |ip| nameserver_ips.include? ip }
      end
    end
  end
  threads.map(&:join)
  result
end