diff --git a/netbox/ipam/models.py b/netbox/ipam/models.py index d8e2aae97..714d5a5b0 100644 --- a/netbox/ipam/models.py +++ b/netbox/ipam/models.py @@ -365,7 +365,8 @@ class Prefix(CreatedUpdatedModel, CustomFieldModel): child_prefixes = netaddr.IPSet([p.prefix for p in queryset]) return int(float(child_prefixes.size) / self.prefix.size * 100) else: - child_count = self.get_child_ips().count() + # Compile an IPSet to avoid counting duplicate IPs + child_count = netaddr.IPSet([ip.address.ip for ip in self.get_child_ips()]).size prefix_size = self.prefix.size if self.family == 4 and self.prefix.prefixlen < 31 and not self.is_pool: prefix_size -= 2