Class: Resolv::MDNS
Overview
Resolv::MDNS is a one-shot Multicast DNS (mDNS) resolver. It blindly makes queries to the mDNS addresses without understanding anything about multicast ports.
Information taken form the following places:
- RFC 6762
Constant Summary collapse
- Port =
Default mDNS Port
5353- AddressV4 =
Default IPv4 mDNS address
'224.0.0.251'- AddressV6 =
Default IPv6 mDNS address
'ff02::fb'- Addresses =
Default mDNS addresses
[ [AddressV4, Port], [AddressV6, Port], ]
Constants inherited from DNS
DNS::RequestID, DNS::RequestIDMutex, DNS::UDPSize
Instance Method Summary collapse
-
#each_address(name) ⇒ Object
Iterates over all IP addresses for
nameretrieved from the mDNS resolver, provided name ends with "local". -
#initialize(config_info = nil) ⇒ MDNS
constructor
Creates a new one-shot Multicast DNS (mDNS) resolver.
-
#make_udp_requester ⇒ Object
:nodoc:.
Methods inherited from DNS
allocate_request_id, #close, #each_name, #each_resource, #extract_resources, #fetch_resource, free_request_id, #getaddress, #getaddresses, #getname, #getnames, #getresource, #getresources, #lazy_initialize, #make_tcp_requester, open, random, #timeouts=
Constructor Details
#initialize(config_info = nil) ⇒ MDNS
Creates a new one-shot Multicast DNS (mDNS) resolver.
config_info can be:
- nil
Uses the default mDNS addresses
- Hash
Must contain :nameserver or :nameserver_port like Resolv::DNS#initialize.
3310 3311 3312 3313 3314 3315 3316 |
# File 'lib/resolv.rb', line 3310 def initialize(config_info=nil) if config_info then super({ nameserver_port: Addresses }.merge(config_info)) else super(nameserver_port: Addresses) end end |
Instance Method Details
#each_address(name) ⇒ Object
Iterates over all IP addresses for name retrieved from the mDNS
resolver, provided name ends with "local". If the name does not end in
"local" no records will be returned.
name can be a Resolv::DNS::Name or a String. Retrieved addresses will
be a Resolv::IPv4 or Resolv::IPv6
3326 3327 3328 3329 3330 3331 3332 |
# File 'lib/resolv.rb', line 3326 def each_address(name) name = Resolv::DNS::Name.create(name) return unless name[-1].to_s == 'local' super(name) end |
#make_udp_requester ⇒ Object
:nodoc:
3334 3335 3336 3337 |
# File 'lib/resolv.rb', line 3334 def make_udp_requester # :nodoc: nameserver_port = @config.nameserver_port Requester::MDNSOneShot.new(*nameserver_port) end |