Take a binary representation and zero out what doesn't match your netmask.
:
, IP a.b.c.d e.f.g.h/i, IP , uint32_t ip = a<<24 + b<<16 + c<<8 + d uint32_t range = e<<24 + f<<16 + g<<8 + h. : uint32_t mask = (~0u) << (32-i). , ip "" range, : ip & mask == range & mask.