#!/usr/bin/env python3

from ipaddress import ip_network
import argparse

parser = argparse.ArgumentParser(description="")

parser.add_argument(
    "-e",
    "--exclude",
    required=False,
    type=str,
    action="append",
    help="IP range that should be excluded from 0.0.0.0/0",
)

args = parser.parse_args()

start: str = "0.0.0.0/0"
exclude: list[str] = args.exclude

result = [ip_network(start)]
for i in exclude:
    n = ip_network(i)
    new = []
    for k in result:
        if k.overlaps(n):
            new.extend(k.address_exclude(n))
        else:
            new.append(k)
    result = new

print(", ".join(str(i) for i in sorted(result)) + ", ::0/0")