Skip to content

ipmath

Collection Note

This module is part of the ansible.utils collection. To install the collection, use:

ansible-galaxy collection install ansible.utils
Added in version 2.5.0.

Synopsis

  • This filter is designed to do simple IP math/arithmetic.

Parameters

Parameter Defaults / Choices Comments
amount
int
integer for arithmetic. Example -1,2,3
value
str
required
list of subnets or individual address or any other values input for ipaddr plugin

Examples

#### examples
# Ipmath filter plugin with different arthmetic.
# Get the next fifth address based on an IP address
- debug:
    msg: "{{ '192.168.1.5' | ansible.utils.ipmath(5) }}"

# Get the tenth previous address based on an IP address
- debug:
    msg: "{{ '192.168.1.5' | ansible.utils.ipmath(-10) }}"

# Get the next fifth address using CIDR notation
- debug:
    msg: "{{ '192.168.1.1/24' | ansible.utils.ipmath(5) }}"

# Get the previous fifth address using CIDR notation
- debug:
    msg: "{{ '192.168.1.6/24' | ansible.utils.ipmath(-5) }}"

# Get the previous tenth address using cidr notation
# It returns a address of the previous network range
- debug:
    msg: "{{ '192.168.2.6/24' | ansible.utils.ipmath(-10) }}"

# Get the next tenth address in IPv6
- debug:
    msg: "{{ '2001::1' | ansible.utils.ipmath(10) }}"

# Get the previous tenth address in IPv6
- debug:
    msg: "{{ '2001::5' | ansible.utils.ipmath(-10) }}"

# TASK [debug] **********************************************************************************************************
# ok: [localhost] => {
#     "msg": "192.168.1.10"
# }
#
# TASK [debug] **********************************************************************************************************
# ok: [localhost] => {
#     "msg": "192.168.0.251"
# }
#
# TASK [debug] **********************************************************************************************************
# ok: [localhost] => {
#     "msg": "192.168.1.6"
# }
#
# TASK [debug] **********************************************************************************************************
# ok: [localhost] => {
#     "msg": "192.168.1.1"
# }
#
# TASK [debug] **********************************************************************************************************
# ok: [localhost] => {
#     "msg": "192.168.1.252"
# }
#
# TASK [debug] **********************************************************************************************************
# ok: [localhost] => {
#     "msg": "2001::b"
# }
#
# TASK [debug] **********************************************************************************************************
# ok: [localhost] => {
#     "msg": "2000:ffff:ffff:ffff:ffff:ffff:ffff:fffb"
# }

Return Values

Key Data Type Description Returned
data str Returns result of IP math/arithmetic.

Authors

  • Ashwini Mhatre (@amhatre)