module TestLab::Utility::CIDR
CIDR
Module
@author Zachary Patten <zachary AT jovelabs DOT com>
Constants
- CIDR_MATRIX
Public Instance Methods
arpa(ip)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 121 def arpa(ip) [arpa_octets(ip), 'in-addr', 'arpa'].flatten.join('.') end
arpa_octets(ip, fill=nil)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 99 def arpa_octets(ip, fill=nil) ip, cidr = ip.split('/') oct = octets(ip) result = case cidr.to_i when 0..7 then [fill, fill, fill, fill] when 8..15 then [oct[0,1], fill, fill, fill] when 16..23 then [oct[0,2], fill, fill] when 24..31 then [oct[0,3], fill] end result.flatten.compact.reverse end
broadcast(ip)
click to toggle source
Returns the broadcast address
# File lib/testlab/utility/cidr.rb, line 76 def broadcast(ip) ip, cidr = ip.split('/') cidr_matrix(cidr)[:broadcast] % ip.split('.') end
cidr(ip)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 52 def cidr(ip) ip.split('/').last.to_i end
cidr_matrix(cidr)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 60 def cidr_matrix(cidr) CIDR_MATRIX[cidr.to_i] end
cidr_octets(ip, fill=nil)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 81 def cidr_octets(ip, fill=nil) ip, cidr = ip.split('/') oct = octets(ip) result = case cidr.to_i when 0..7 then oct[-4,4] when 8..15 then [fill, oct[-3,3]] when 16..23 then [fill, fill, oct[-2,2]] when 24..31 then [fill, fill, fill, oct[-1,1]] end result.flatten.compact end
ip(ip)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 48 def ip(ip) ip.split('/').first end
netmask(ip)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 64 def netmask(ip) ip, cidr = ip.split('/') cidr_matrix(cidr)[:netmask] end
network(ip)
click to toggle source
Returns the network address
# File lib/testlab/utility/cidr.rb, line 70 def network(ip) ip, cidr = ip.split('/') cidr_matrix(cidr)[:network] % ip.split('.') end
octets(ip)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 56 def octets(ip) ip.split('.') end
ptr(ip)
click to toggle source
# File lib/testlab/utility/cidr.rb, line 117 def ptr(ip) cidr_octets(ip).reverse.join('.') end