This is a small recursive function that draws an IP space layout based on a few parameters. It breaks down a large IP space (for intance a /16) into smaller networks as specified (down to /30). In order to collapse out unnecessary data, you can optionally specify a network size you are interested in (for instance, /24) and only display the networks at that scale. Text descriptions can be attached to any given subnet/subnet mask combination... described networks will always be shown.
#The network number to start with... start = ip_to_base10("172.20.128.0") #An 'interesting' network size will always be shown, regardless if its used. Set to 0 if you don't want it. interesting = 22 #The network size to start drawing from ( 0 to 30) draw_from = 17 #the network size to stop drawing at (0 to 30, should be smaller (in size... /0 is largest, /30 smallest) than draw_from) draw_to = 18 #OK, draw it drawsubnet(draw_from, draw_to, interesting, start)
/17 172.20.128.0 - 255.255.128.0 - 32766 hosts - (2 /18's under) /18 172.20.128.0 - 255.255.192.0 - 16382 hosts /22 172.20.128.0 - 255.255.252.0 - 1022 hosts - New York /22 /22 172.20.132.0 - 255.255.252.0 - 1022 hosts - Los Angeles /22 /22 172.20.136.0 - 255.255.252.0 - 1022 hosts - Chicago /22 /22 172.20.140.0 - 255.255.252.0 - 1022 hosts /22 172.20.144.0 - 255.255.252.0 - 1022 hosts /22 172.20.148.0 - 255.255.252.0 - 1022 hosts /22 172.20.152.0 - 255.255.252.0 - 1022 hosts /22 172.20.156.0 - 255.255.252.0 - 1022 hosts /22 172.20.160.0 - 255.255.252.0 - 1022 hosts /22 172.20.164.0 - 255.255.252.0 - 1022 hosts /22 172.20.168.0 - 255.255.252.0 - 1022 hosts /22 172.20.172.0 - 255.255.252.0 - 1022 hosts /22 172.20.176.0 - 255.255.252.0 - 1022 hosts /22 172.20.180.0 - 255.255.252.0 - 1022 hosts /22 172.20.184.0 - 255.255.252.0 - 1022 hosts /22 172.20.188.0 - 255.255.252.0 - 1022 hosts /18 172.20.192.0 - 255.255.192.0 - 16382 hosts /22 172.20.192.0 - 255.255.252.0 - 1022 hosts /22 172.20.196.0 - 255.255.252.0 - 1022 hosts /22 172.20.200.0 - 255.255.252.0 - 1022 hosts /22 172.20.204.0 - 255.255.252.0 - 1022 hosts /22 172.20.208.0 - 255.255.252.0 - 1022 hosts /22 172.20.212.0 - 255.255.252.0 - 1022 hosts /22 172.20.216.0 - 255.255.252.0 - 1022 hosts /22 172.20.220.0 - 255.255.252.0 - 1022 hosts /22 172.20.224.0 - 255.255.252.0 - 1022 hosts /22 172.20.228.0 - 255.255.252.0 - 1022 hosts /22 172.20.232.0 - 255.255.252.0 - 1022 hosts /22 172.20.236.0 - 255.255.252.0 - 1022 hosts /22 172.20.240.0 - 255.255.252.0 - 1022 hosts /22 172.20.244.0 - 255.255.252.0 - 1022 hosts /22 172.20.248.0 - 255.255.252.0 - 1022 hosts /22 172.20.252.0 - 255.255.252.0 - 1022 hosts - Administrivia /24 172.20.255.0 - 255.255.255.0 - 254 hosts - Management Networks /29 172.20.255.0 - 255.255.255.248 - 6 hosts - Management network A /29 172.20.255.8 - 255.255.255.248 - 6 hosts - Management network B