Module: Ohai::Mixin::NetworkHelper
- Defined in:
- lib/ohai/mixin/network_helper.rb
Constant Summary collapse
- FAMILIES =
{ "inet" => "default", "inet6" => "default_inet6", }.freeze
Instance Method Summary collapse
-
#canonicalize_hostname(hostname) ⇒ Object
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).
- #canonicalize_hostname_with_retries(hostname) ⇒ Object
- #hex_to_dec_netmask(netmask) ⇒ Object
Instance Method Details
#canonicalize_hostname(hostname) ⇒ Object
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.
49 50 51 |
# File 'lib/ohai/mixin/network_helper.rb', line 49 def canonicalize_hostname(hostname) Addrinfo.getaddrinfo(hostname, nil, nil, nil, nil, Socket::AI_CANONNAME).first.canonname end |
#canonicalize_hostname_with_retries(hostname) ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/ohai/mixin/network_helper.rb', line 53 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) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/ohai/mixin/network_helper.rb', line 33 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 |