On Tue, 15 May 2018 17:38:26 -0700 XXX ZZZ <[email protected]> wrote:
XXX ZZZ writes:
>
> I'm trying to check an IP against a list of several CIDR ranges, so far the
> most obvious way to do it seems to parse both the IP and the cidr ranges (
> ParseCIDR) and then do a net.contain() however, if we have more than 1 CIDR
> we have to loop checking one by one which imho is incredible unefficient +
> slow if the cidr range is big.
>
> Is there any more efficient way of achieving this? I have thought on making
> a map[string]string with all the IPs (within the CIDR) but the amount of
> required memory for big lists goes up to a few GB.
You can use a radix or patricia tree. Searching reveals
https://github.com/zmap/go-iptree
which may do exactly what you are looking for.
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.