Class: IPToCIDR

Inherits:
Object
  • Object
show all
Defined in:
lib/ip2cidr.rb

Overview

The main IPToCIDR driver

Class Method Summary collapse

Class Method Details

.solveCIDR(startip, endip) ⇒ Object

Converts IP Range to IP CIDR blocks

Example:

>> IPToCIDR.solveCIDR("172.254.6.1","192.168.254.254")
=> 192.168.254.0/24

Arguments:

startip: (String)
endip:   (String)

Raises:

  • (ArgumentError)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ip2cidr.rb', line 14

def self.solveCIDR(startip, endip)
  cidr = IPHandling.new

  # Check if IP Starting Address is valid
  raise ArgumentError, 'IP address is not valid' unless startip.split(".").length == 4
  
  # Check if Ending IP Address is valid
  raise ArgumentError, 'IP address is not valid' unless endip.split(".").length == 4
 
  raise ArgumentError, 'Special IP address error' if 
    (startip == "0.0.0.0") || (endip == "0.0.0.0") || 
      (startip == "255.255.255.255") || (endip == "255.255.255.255")

  
  cidr.iprange_to_cidr(startip, endip)
end