# File firewall/lib/symbiosis/firewall/pattern.rb, line 72 def apply(lines) # This returns a has of IPs summed up. results = Hash.new{|h,k| h[k] = Hash.new{|i,l| i[l] = 0 }} lines.each do |line| @patterns.each do |pattern| next unless line =~ pattern ip = $1 begin ip = IPAddr.new(ip) rescue ArgumentError warn "Failed to parse IP #{ip.inspect}" end next unless ip.is_a?(IPAddr) # # Only apply /64 for ipv6 addresses. # ip = ip.mask( 64 ) if ip.ipv6? @ports.each do |port| results[ip.to_s][port] += 1 end end end results end