Module: Arborist::NetworkUtilities

Included in:
Arborist::Node::Host, Arborist::Node::Service
Defined in:
lib/arborist/mixins.rb

Overview

A collection of utilities for working with network addresses, names, etc.

Constant Summary collapse

IPADDR_RE =

A union of IPv4 and IPv6 regular expressions.

Regexp.union(
  IPAddr::RE_IPV4ADDRLIKE,
  IPAddr::RE_IPV6ADDRLIKE_COMPRESSED,
  IPAddr::RE_IPV6ADDRLIKE_FULL
)

Instance Method Summary collapse

Instance Method Details

#normalize_address(address) ⇒ Object

Return the specified address as one or more IPAddr objects.



406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
# File 'lib/arborist/mixins.rb', line 406

def normalize_address( address )
  addresses = []
  case address
  when IPAddr
    addresses << address
  when IPADDR_RE
    addresses << IPAddr.new( address )
  when String
    ip_addr = TCPSocket.gethostbyname( address )
    addresses = ip_addr[3..-1].map{|ip| IPAddr.new(ip) }
  else
    raise "I don't know how to parse a %p host address (%p)" %
      [ address.class, address ]
  end

  return addresses
end