# subnet address facts module

**URL:** <https://forum.ansible.com/t/subnet-address-facts-module/17759>\
**Category:** Ansible Developer\
**Created:** [March 16, 2015, 9:49pm UTC](https://forum.ansible.com/t/subnet-address-facts-module/17759 "2015-03-16T21:49:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Paul\_Siegmann](https://avatars.discourse-cdn.com/v4/letter/p/a9adbd/32.png) [@Paul\_Siegmann](https://forum.ansible.com/u/Paul_Siegmann)\
**Post date:** [March 16, 2015, 9:49pm UTC](https://forum.ansible.com/t/subnet-address-facts-module/17759/1 "2015-03-16T21:49:51Z")

</div>

Hi All,

I’ve created a facts module to calculate subnet block addresses.

This is helpful when creating new subnets on for instance Amazon EC2.

Example usage:

- name: get subnet blocks  
local\_action:  
module: subnet\_block\_facts  
start\_address: 183.0.0.0  
prefix: 16  
subnet\_prefix: 22

Which returns this:

{  
“ansible\_facts”: {  
“subnet\_addresses”: {  
“blocks”: [  
{  
“block\_address”: “183.0.0.0/22”,  
“first\_address”: “183.0.0.0”,  
“last\_address”: “183.0.3.255”  
},  
…  
{  
“block\_address”: “183.0.252.0/22”,  
“first\_address”: “183.0.252.0”,  
“last\_address”: “183.0.255.255”  
}  
],  
“first\_address”: “183.0.0.0”,  
“max\_number\_subnets”: 64,  
“subnet\_prefix”: 22,  
“subnet\_size”: 1024,  
“total\_block”: “183.0.0.0/16”,  
“total\_prefix”: 16  
}  
},  
“changed”: false  
}

Now I have 2 questions:

1: Would the Ansible community be interested in adding this to the distribution ?  
2: If so, would this be the best way of naming things ?

regards,  
Paul Siegmann

---

<div class="post-metadata">

**Author:** ![Matt\_Hite](https://avatars.discourse-cdn.com/v4/letter/m/5fc32e/32.png) [@Matt\_Hite](https://forum.ansible.com/u/Matt_Hite)\
**Post date:** [March 16, 2015, 11:26pm UTC](https://forum.ansible.com/t/subnet-address-facts-module/17759/2 "2015-03-16T23:26:20Z")

</div>

Will this support IPv6?

---

<div class="post-metadata">

**Author:** ![Paul\_Siegmann](https://avatars.discourse-cdn.com/v4/letter/p/a9adbd/32.png) [@Paul\_Siegmann](https://forum.ansible.com/u/Paul_Siegmann)\
**Post date:** [March 17, 2015, 8:09am UTC](https://forum.ansible.com/t/subnet-address-facts-module/17759/3 "2015-03-17T08:09:16Z")

</div>

Hi Matt,

I will not add it, as AWS does not support IPV6 and I don’t have any experience with it.

I’ll accept patches though 🙂

---

<div class="post-metadata">

**Author:** ![Gerard\_Lynch](https://avatars.discourse-cdn.com/v4/letter/g/958977/32.png) [@Gerard\_Lynch](https://forum.ansible.com/u/Gerard_Lynch)\
**Post date:** [March 18, 2015, 10:02am UTC](https://forum.ansible.com/t/subnet-address-facts-module/17759/4 "2015-03-18T10:02:17Z")

</div>

You may be interested in the ipaddr filter plugin that drybjed has written and submitted to devel

[https://github.com/ansible/ansible/blob/devel/lib/ansible/runner/filter\_plugins/ipaddr.py](https://github.com/ansible/ansible/blob/devel/lib/ansible/runner/filter_plugins/ipaddr.py)

and the docs are here:

[https://github.com/ansible/ansible/blob/devel/docsite/rst/playbooks\_filters\_ipaddr.rst](https://github.com/ansible/ansible/blob/devel/docsite/rst/playbooks_filters_ipaddr.rst)
