class Netchk::DNSServerVerifier
Public Class Methods
new(**options)
click to toggle source
# File lib/netchk/dns_server_verifier.rb, line 8 def initialize(**options) @resolve_conf = options['resolv.conf'] end
Public Instance Methods
verify()
click to toggle source
# File lib/netchk/dns_server_verifier.rb, line 12 def verify nameservers = self.nameservers if nameservers.empty? $stderr.puts 'No DNS server found. Verify your configuration.' else puts "Using DNS servers #{nameservers.map { |ns| ns.join('#') }.join(', ')}" nameservers.map do |ns| verify_nameserver(*ns) end end end
Private Instance Methods
nameservers()
click to toggle source
# File lib/netchk/dns_server_verifier.rb, line 32 def nameservers # Dirty trick to get default nameserver list from /etc/resolv.conf # without parsing the file manually. ::Resolv::DNS.open(@resolve_conf) do |dns| dns.lazy_initialize dns.instance_variable_get('@config').instance_variable_get('@nameserver_port') end end
verify_nameserver(ip, port)
click to toggle source
# File lib/netchk/dns_server_verifier.rb, line 25 def verify_nameserver(ip, port) ping = Net::Ping::TCP.new(ip, port) unless ping.ping? $stderr.puts "Failed to ping DNS server #{ip}##{port}" end end