Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Breakdown CIDR with netaddr
#2
I got it working using this:

from netaddr import *
import sys

network_list = []
subnet_list = []

def define_prefixlens(subnet_input, max):
    max_cidr_val = int(max) + 1
    ip = IPNetwork(subnet_input)
    prefixes = (i for i in range(ip.prefixlen +1, max_cidr_val))
    for i in prefixes:
        network_list.append(i)

def list_of_subnets(subnet):
    ip = IPNetwork(subnet)
    for i in network_list:
        sub = ip.subnet(i)
        for i in sub:
           subnet_list.append(i)

def main():
    # value = sys.argv[1]
    value = '10.20.30.0/27'
    # max_cidr = sys.argv[2]
    max_cidr = 24
    define_prefixlens(value, max_cidr)
    # print(network_list)
    list_of_subnets(value)
    for i in sorted(subnet_list):
        print(i)

if __name__ == '__main__':
    main()
Reply


Messages In This Thread
Breakdown CIDR with netaddr - by wfsteadman - Oct-05-2019, 04:26 PM
RE: Breakdown CIDR with netaddr - by wfsteadman - Oct-06-2019, 06:22 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020