class RogueOne::Ping

Attributes

nameserver[R]
resolver[R]

Public Class Methods

new(nameserver) click to toggle source
# File lib/rogue_one/ping.rb, line 10
def initialize(nameserver)
  @nameserver = nameserver
  @resolver = Resolv::DNS.new(nameserver: [nameserver])
  @resolver.timeouts = 5
end
pong?(target) click to toggle source
# File lib/rogue_one/ping.rb, line 29
def self.pong?(target)
  new(target).pong?
end

Public Instance Methods

get_a_record() click to toggle source
# File lib/rogue_one/ping.rb, line 16
def get_a_record
  resolver.getresource("example.com", Resolv::DNS::Resource::IN::A)
rescue Resolv::ResolvError => _e
  nil
end
pong?() click to toggle source
# File lib/rogue_one/ping.rb, line 22
def pong?
  result = get_a_record
  raise Error, "DNS resolve error: there is no resopnse from #{nameserver}" unless result

  true
end