Class: RogueOne::Ping
- Inherits:
-
Object
- Object
- RogueOne::Ping
- Defined in:
- lib/rogue_one/ping.rb
Instance Attribute Summary collapse
-
#nameserver ⇒ Object
readonly
Returns the value of attribute nameserver.
-
#resolver ⇒ Object
readonly
Returns the value of attribute resolver.
Class Method Summary collapse
Instance Method Summary collapse
- #get_a_record ⇒ Object
-
#initialize(nameserver) ⇒ Ping
constructor
A new instance of Ping.
- #pong? ⇒ Boolean
Constructor Details
#initialize(nameserver) ⇒ Ping
Returns a new instance of Ping.
9 10 11 12 13 |
# File 'lib/rogue_one/ping.rb', line 9 def initialize(nameserver) @nameserver = nameserver @resolver = Resolv::DNS.new(nameserver: [nameserver]) @resolver.timeouts = 5 end |
Instance Attribute Details
#nameserver ⇒ Object (readonly)
Returns the value of attribute nameserver.
7 8 9 |
# File 'lib/rogue_one/ping.rb', line 7 def nameserver @nameserver end |
#resolver ⇒ Object (readonly)
Returns the value of attribute resolver.
7 8 9 |
# File 'lib/rogue_one/ping.rb', line 7 def resolver @resolver end |
Class Method Details
.pong?(target) ⇒ Boolean
28 29 30 |
# File 'lib/rogue_one/ping.rb', line 28 def self.pong?(target) new(target).pong? end |
Instance Method Details
#get_a_record ⇒ Object
15 16 17 18 19 |
# File 'lib/rogue_one/ping.rb', line 15 def get_a_record resolver.getresource("example.com", Resolv::DNS::Resource::IN::A) rescue Resolv::ResolvError => _e nil end |
#pong? ⇒ Boolean
21 22 23 24 25 26 |
# File 'lib/rogue_one/ping.rb', line 21 def pong? result = get_a_record raise Error, "DNS resolve error: there is no resopnse from #{nameserver}" unless result true end |