class Middleman::DnsResolver
This resolves IP address to names and vice versa
Attributes
Public Class Methods
Source
# File lib/middleman-core/dns_resolver.rb, line 30 def initialize(opts={}) @resolvers = [] @resolvers << opts.fetch(:hosts_resolver, HostsResolver.new) require 'middleman-core/dns_resolver/local_link_resolver' @resolvers << opts.fetch(:local_link_resolver, LocalLinkResolver.new) @resolvers << opts.fetch(:network_resolver, NetworkResolver.new) end
Create resolver
First the local resolver is used. If environment variable HOSTSRC is given this file is used for local name lookup.
@param [#getnames, getaddresses] network_resolver
The resolver which uses a network name server to resolve ip addresses and names.
@param [#getnames, getaddresses] local_resolver
The resolver uses /etc/hosts on POSIX-systems and C:\Windows\System32\drivers\etc\hosts on Windows-operating systems to resolve ip addresses and names.
First the local resolver is queried. If this raises an error or returns nil or [] the network resolver is queried.
Public Instance Methods
Source
# File lib/middleman-core/dns_resolver.rb, line 61 def ips_for(name) resolvers.each do |r| ips = r.getaddresses(name) return ips unless ips.nil? || ips.empty? end [] end
Get ips for given name
First the local resolver is used. On POSIX-systems /etc/hosts is used. On Windows C:WindowsSystem32driversetchosts is used.
@param [String] name
The name which should be resolved.
Source
# File lib/middleman-core/dns_resolver.rb, line 44 def names_for(ip) resolvers.each do |r| names = r.getnames(ip) return names unless names.nil? || names.empty? end [] end
Get names for given ip
@param [String] ip
The ip which should be resolved.