diff --git a/subnet.py b/subnet.py index 1a793f9..62d0fee 100644 --- a/subnet.py +++ b/subnet.py @@ -13,5 +13,16 @@ def zone_is_subset(re2o_reverse_zone, network): >>> zone_is_subset(zone, net1) True """ - return all(ipaddress.ip_network(n).subnet_of(network) for n in - zone["cidrs"]) + + if network.version == 4: + return all(ipaddress.ip_network(n).subnet_of(network) for n in + re2o_reverse_zone["cidrs"]) + + elif network.version == 6: + if re2o_reverse_zone["prefix_v6"]: + ipv6_prefix = re2o_reverse_zone["prefix_v6"] + ipv6_prefix_length = re2o_reverse_zone["prefix_v6_length"] + net6 = ipaddress.ip_network(f"{ipv6_prefix}/{ipv6_prefix_length}") + return net6.subnet_of(network) + else: + return False