module Ohai::Mixin::NetworkHelper
Constants
- FAMILIES
Public Instance Methods
canonicalize_hostname(hostname)
click to toggle source
This does a forward and reverse lookup on the hostname to return what should be the FQDN for the host determined by name lookup (generally DNS). If the forward lookup fails this will throw. If the reverse lookup fails this will return the hostname back. The behavior on failure of the reverse lookup is both vitally important to this API, and completely untested, so changes to this method (not recommended) need to be manually validated by hand by setting up a DNS server with a broken A record to an IP without a PTR record (e.g. any RFC1918 space not served by the configured DNS server), and the method should return the hostname and not the IP address.
# File lib/ohai/mixin/network_helper.rb, line 47 def canonicalize_hostname(hostname) Addrinfo.getaddrinfo(hostname, nil, nil, nil, nil, Socket::AI_CANONNAME).first.canonname end
canonicalize_hostname_with_retries(hostname)
click to toggle source
# File lib/ohai/mixin/network_helper.rb, line 51 def canonicalize_hostname_with_retries(hostname) retries = 3 begin canonicalize_hostname(hostname) rescue retries -= 1 retry if retries > 0 nil end end
hex_to_dec_netmask(netmask)
click to toggle source
# File lib/ohai/mixin/network_helper.rb, line 31 def hex_to_dec_netmask(netmask) # example 'ffff0000' -> '255.255.0.0' dec = netmask[0..1].to_i(16).to_s(10) [2, 4, 6].each { |n| dec = dec + "." + netmask[n..n + 1].to_i(16).to_s(10) } dec end