Chris Hall Chris Hall - 1 month ago 30
Python Question

IP Range to CIDR conversion in Python?

How can I get a CIDR notation representing a range of IP addresses, given the start and end IP addresses of the range, in Python? I can find CIDR to IP Range but cannot find any code for the reverse.

Example of the desired output:

startip = '63.223.64.0'
endip = '63.223.127.255'

return '63.223.64.0/18'

Answer

You may use iprange_to_cidrs provided by netaddr module. Example:

cidrs = netaddr.iprange_to_cidrs(startip, endip)

Here are the official docs: https://pythonhosted.org/netaddr/index.html

Comments