def netmask_to_i(netmask, options=nil)
known_args = [:Version]
version = 4
netmask_int = nil
if (options)
raise ArgumentError, "Hash expected for argument 'options' but #{options.class} provided." if (!options.kind_of?(Hash))
NetAddr.validate_args(options.keys,known_args)
if (options.has_key?(:Version))
version = options[:Version]
if (version != 4 && version != 6)
raise VersionError, ":Version should be 4 or 6, but was '#{version}'."
end
end
end
if (netmask.kind_of?(String))
validate_netmask_str(netmask, version)
netmask_int = netmask_str_to_int(netmask,version)
elsif (netmask.kind_of?(Integer))
validate_netmask_int(netmask, version, true)
netmask_int = bits_to_mask(netmask,version)
else
raise ArgumentError, "String or Integer expected for argument 'netmask', " +
"but #{netmask.class} provided." if (!netmask.kind_of?(Integer) && !netmask.kind_of?(String))
end
return(netmask_int)
end