# class Resolv::MDNS

`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

### Constants

AddressV4

  Default `IPv4` mDNS address

AddressV6

  Default `IPv6` mDNS address

Addresses

  Default mDNS addresses

Port

  Default mDNS `Port`

### Public Class Methods

new(config_info=nil) click to toggle source

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.

Calls superclass method `Resolv::DNS::new`

    # File lib/resolv.rb, line 3122
    def initialize(config_info=nil)
      if config_info then
        super({ nameserver_port: Addresses }.merge(config_info))
      else
        super(nameserver_port: Addresses)
      end
    end

### Public Instance Methods

each_address(name) click to toggle source

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`

Calls superclass method `Resolv::DNS#each_address`

    # File lib/resolv.rb, line 3138
    def each_address(name)
      name = Resolv::DNS::Name.create(name)

      return unless name[-1].to_s == 'local'

      super(name)
    end