Sha256: 5e17a57c2018b586ab8aa8d942d609db242fd1ad6fb16fc6cf0b86c30a151fac
Contents?: true
Size: 1009 Bytes
Versions: 1
Compression:
Stored size: 1009 Bytes
Contents
# frozen_string_literal: true require 'resolv' require 'socket' require 'net/ping/tcp' module Netchk class DNSServerVerifier 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 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 def nameservers # Dirty trick to get default nameserver list from /etc/resolv.conf # without parsing the file manually. ::Resolv::DNS.open do |dns| dns.lazy_initialize dns.instance_variable_get("@config").instance_variable_get("@nameserver_port") end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
netchk-0.0.1.beta | lib/netchk/dns_server_verifier.rb |