Class: IPAddr

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.handle_wildcards(val) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/freedom_patches/ip_addr.rb', line 4

def self.handle_wildcards(val)
  return if val.blank?

  num_wildcards = val.count("*")

  return val if num_wildcards == 0

  # strip ranges like "/16" from the end if present
  v = val.gsub(%r{/.*}, "")

  return if v[v.index("*")..-1] =~ /[^\.\*]/

  parts = v.split(".")
  (4 - parts.size).times { parts << "*" } # support strings like 192.*
  v = parts.join(".")

  "#{v.tr("*", "0")}/#{32 - (v.count("*") * 8)}"
end

Instance Method Details

#to_cidr_sObject



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/freedom_patches/ip_addr.rb', line 23

def to_cidr_s
  if @addr
    mask = @mask_addr.to_s(2).count("1")
    if mask == 32
      to_s
    else
      "#{to_s}/#{mask}"
    end
  else
    nil
  end
end