If, like me, you want only 1 cidr (instead of multiple cidr's) you'll need to use the spanning_cidr
function from either netaddr
pip install netaddr
from netaddr import spanning_cidr
spanning_cidr(startip, endip)
or spanning_cidr
pip install spanning-cidr
from spanning_cidr import spanning_cidr
spanning_cidr([startip, endip])
Here is the difference...
>>> from ipaddress import IPv4Address, summarize_address_range
>>> from netaddr import spanning_cidr
>>>
>>> startip = IPv4Address('63.223.64.0')
>>> endip = IPv4Address('63.224.127.255')
>>> list(summarize_address_range(startip, endip))
[IPv4Network('63.223.64.0/18'),
IPv4Network('63.223.128.0/17'),
IPv4Network('63.224.0.0/17')]
>>>
>>> spanning_cidr(startip, endip)
IPv4Network('63.192.0.0/10')