diff --git a/netbox/ipam/graphql/filters.py b/netbox/ipam/graphql/filters.py index c66b8d483..b7eedf1a6 100644 --- a/netbox/ipam/graphql/filters.py +++ b/netbox/ipam/graphql/filters.py @@ -238,6 +238,15 @@ class PrefixFilter(ContactFilterMixin, ScopedFilterMixin, TenancyFilterMixin, Pr is_pool: FilterLookup[bool] | None = strawberry_django.filter_field() mark_utilized: FilterLookup[bool] | None = strawberry_django.filter_field() + @strawberry_django.filter_field() + def contains(self, value: list[str], prefix) -> Q: + if not value: + return Q() + q = Q() + for subnet in value: + query = str(netaddr.IPNetwork(subnet.strip()).cidr) + q |= Q(prefix__net_contains=query) + return q @strawberry_django.filter_type(models.RIR, lookups=True) class RIRFilter(OrganizationalModelFilterMixin):