vaguerent/lib/vagrant/util/network_ip.rb
2020-06-15 17:06:07 -05:00

25 lines
607 B
Ruby

require "ipaddr"
module Vagrant
module Util
module NetworkIP
DEFAULT_MASK = "255.255.255.0".freeze
LOGGER = Log4r::Logger.new("vagrant::util::NetworkIP")
# Returns the network address of the given IP and subnet.
#
# @return [String]
def network_address(ip, subnet)
begin
IPAddr.new(ip).mask(subnet).to_s
rescue IPAddr::InvalidPrefixError
LOGGER.warn("Provided mask '#{subnet}' is invalid. Falling back to using mask '#{DEFAULT_MASK}'")
IPAddr.new(ip).mask(DEFAULT_MASK).to_s
end
end
end
end
end