lib/jss/ruby_extensions/ipaddr.rb in ruby-jss-0.6.7 vs lib/jss/ruby_extensions/ipaddr.rb in ruby-jss-0.7.0

- old
+ new

@@ -1,35 +1,35 @@ ### Copyright 2017 Pixar -### +### ### Licensed under the Apache License, Version 2.0 (the "Apache License") ### with the following modification; you may not use this file except in ### compliance with the Apache License and the following modification to it: ### Section 6. Trademarks. is deleted and replaced with: -### +### ### 6. Trademarks. This License does not grant permission to use the trade ### names, trademarks, service marks, or product names of the Licensor ### and its affiliates, except as required to comply with Section 4(c) of ### the License and to reproduce the content of the NOTICE file. -### +### ### You may obtain a copy of the Apache License at -### +### ### http://www.apache.org/licenses/LICENSE-2.0 -### +### ### Unless required by applicable law or agreed to in writing, software ### distributed under the Apache License with the above modification is ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ### KIND, either express or implied. See the Apache License for the specific ### language governing permissions and limitations under the Apache License. -### ### +### ############################################ ### A few augmentations to IPAddr handling. ### class IPAddr - + ### Convert starting and ending IPv4 IP addresses (either Strings or IPAddrs) ### into a single masked IPv4 IPAddr ### ### @param starting[Strings, IPAddr] the starting IP address ### @@ -41,11 +41,11 @@ ### IPAddr.jss_masked_v4addr '10.0.0.0', '10.0.0.255' # => #<IPAddr: IPv4:10.0.0.0/255.255.255.0> ### def self.jss_masked_v4addr(starting,ending) IPAddr.new "#{starting}/#{self.jss_cidr_from_ends(starting,ending)}" end #self.jss_masked_v4addr(starting,ending) - + ### Given starting and ending IPv4 IP addresses (either Strings or IPAddrs) ### return the CIDR notation routing prefix mask ### ### @param starting[Strings, IPAddr] the starting IP address ### @@ -55,26 +55,26 @@ ### ### @example ### IPAddr.jss_cidr_from_ends '10.0.0.0', '10.0.0.255' # => 24 ### def self.jss_cidr_from_ends(starting,ending) - + starting = IPAddr.new(starting) unless starting.kind_of? IPAddr ending = IPAddr.new(ending) unless ending.kind_of? IPAddr - + ### how many possible addresses in the range? num_addrs = ending.to_i - starting.to_i + 1 - - ### convert the number of possible addresses to + + ### convert the number of possible addresses to ### binary then subtract the number of bits from - ### the full length of an IPv4 addr + ### the full length of an IPv4 addr ### (32 bits) and that gives the CIDR prefix return 32 - num_addrs.to_s(2).length + 1 - + end #self.get_cidr(starting,ending) - ### Convert a starting address (either String or IPAddr) and a + ### Convert a starting address (either String or IPAddr) and a ### CIDR notation routing prefix mask into the IPv4 address ### of at the end of the range of addresses. ### ### @param starting[Strings, IPAddr] the starting IP address ### @@ -86,7 +86,7 @@ ### IPAddr.jss_ending_address '10.0.0.0', 24 # => #<IPAddr: IPv4:10.0.0.255> ### def self.jss_ending_address(starting, cidr) IPAddr.new( "#{starting}/#{cidr}").to_range.max end # ending_address - + end # Class IPAddr