class IPAddr

Code validate private/public IP acceptable ranges.

Code validate private/public IP acceptable ranges.

Constants

PRIVATE_RANGES

Public Class Methods

address_prefix(ip, cidr) click to toggle source
# File lib/azure/core/utility.rb, line 234
def address_prefix(ip, cidr)
  ip + '/' + cidr.to_s
end
valid?(ip) click to toggle source
# File lib/azure/core/utility.rb, line 238
def valid?(ip)
  (IPAddr.new(ip) rescue nil).nil?
end
validate_address_space(ip) click to toggle source
# File lib/azure/core/utility.rb, line 226
def validate_address_space(ip)
  if ip.split('/').size != 2
    raise "Cidr is invalid for IP #{ip}."
  elsif valid?(ip)
    raise "Address space '#{ip}' is invalid."
  end
end
validate_ip_and_prefix(ip, cidr) click to toggle source
# File lib/azure/core/utility.rb, line 216
def validate_ip_and_prefix(ip, cidr)
  if cidr.to_s.empty?
    raise "Cidr is missing for IP '#{ip}'."
  elsif valid?(ip)
    raise "Ip address '#{ip}' is invalid."
  elsif !IPAddr.new(ip).private?
    raise "Ip Address #{ip} must be private."
  end
end

Public Instance Methods

private?() click to toggle source
# File lib/azure/core/utility.rb, line 203
def private?
  return false unless self.ipv4?
  PRIVATE_RANGES.each do |ipr|
    return true if ipr.include?(self)
  end
  false
end
public?() click to toggle source
# File lib/azure/core/utility.rb, line 211
def public?
  !private?
end