Breaking down network range to individual networks
Aaron Christensen
aaron.christensen at gmail.com
Wed Jun 1 11:58:01 EDT 2016
Hello,
Does anyone know about a feature of ipaddress that will take the following
network range:
"10.224.16.0-10.224.23.0"
and convert it to individual networks?
I am trying to figure out the best way to take a network range and break it
up into the largest possible networks.
I started working out some things on paper but I don't want to get too far
ahead of myself in case there is a function or easy way that already does
this.
Thank you for your help!
Aaron
-------------------------------------------------------------
Pasted some brainstorming below to show that I am actively working this and
not just asking before trying.
ipaddress.ip_network('10.224.16.0/24') - (ipaddress.ip_network('
10.224.23.0/24'))
IPv4Network
IPv4Network('10.224.16.0/24').compare_networks(IPv4Network('10.224.23.0/24')
)
str(ipaddress.IPv4Address('192.168.0.1'))
IPv4Address('10.224.16.0') + 3
ipaddress.ip_address('10.224.16.0') + 256
0.0.x=0.0
/24 x + 0
/23 x + 1 = 0.0.0.0
/22 x + 3 = 0.0.0.0
1 can be /18 if x = 0
2 can be /19 if x = 0, 32
4 can be /20 if x = 0, 16, 32, 48
8 can be /21 if x = 0, 8, 16, 24, 32, 40, 48, 56
16 can be /22 if x = 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52,
56, 60
32 can be /23 if x = 0 through 62
64 can be /24 if x = 0 though 255
10.224.255.0
start > can be
odd > /24
even > /24/23
0 > /22/21/20/19/18...
4 > /22
8 > /22/21
12 > /22
16 > /22/21/20
20 > /22
24 > /22/21
28 > /22
32 > /22/21/20/19
36 > /22
40 > /22/21
44 > /22
48 > /22/21/20
More information about the Python-list
mailing list