Method: IPAddr#each

Defined in:
lib/ronin/support/core_ext/ipaddr.rb

#each {|ip| ... } ⇒ Object

Iterates over each IP address that is included in the addresses netmask. Supports both IPv4 and IPv6 addresses.

Examples:

netblock = IPAddr.new('10.1.1.1/24')

netblock.each do |ip|
  puts ip
end

Yields:

  • (ip)

    The block which will be passed every IP address covered be the netmask of the IPAddr object.

Yield Parameters:

  • ip (String)

    An IP address.



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/ronin/support/core_ext/ipaddr.rb', line 53

def each
  return enum_for(__method__) unless block_given?

  family_mask = MASKS[@family]

  (0..((~@mask_addr) & family_mask)).each do |i|
    yield _to_string(@addr | i)
  end

  return self
end