Puppet Function: extlib::is_in_cidr

Defined in:
lib/puppet/functions/extlib/is_in_cidr.rb
Function type:
Ruby 4.x API

Summary

Returns a boolean indicating whether an IP address is part of a network CIDR

Overview

extlib::is_in_cidr(Stdlib::IP::Address::Nosubnet $ip, Variant[Stdlib::IP::Address::V4::CIDR,Stdlib::IP::Address::V6::CIDR] $cidr)Boolean

Examples:

Calling the function

'192.0.2.42'.extlib::is_in_cidr('192.0.2.0/24')

Parameters:

  • ip (Stdlib::IP::Address::Nosubnet)

    IPv4 or IPv6 address

  • cidr (Variant[Stdlib::IP::Address::V4::CIDR,Stdlib::IP::Address::V6::CIDR])

    CIDR you want to check whether the IP address is in or not

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/puppet/functions/extlib/is_in_cidr.rb', line 6

Puppet::Functions.create_function(:'extlib::is_in_cidr') do
  # @param ip
  #   IPv4 or IPv6 address
  # @param cidr
  #   CIDR you want to check whether the IP address is in or not
  #
  # @example Calling the function
  #   '192.0.2.42'.extlib::is_in_cidr('192.0.2.0/24')
  dispatch :ip_is_in_cidr? do
    param 'Stdlib::IP::Address::Nosubnet', :ip
    param 'Variant[Stdlib::IP::Address::V4::CIDR,Stdlib::IP::Address::V6::CIDR]', :cidr
    return_type 'Boolean'
  end

  def ip_is_in_cidr?(ip, cidr)
    IPAddr.new(cidr).include? IPAddr.new(ip)
  end
end