IP属于CIDR范围

set*_*eth 5 c c++ ip

我有这样的IP:12.12.12.12
我循环遍历不同的IP范围(12.12.12.0/24(示例))格式,并试图查看IP是否在范围内.
我尝试了各种方法,如inet_addr和比较,但我似乎无法得到它.
是否有捷径可寻?我正在使用Windows.

Ben*_*igt 8

只测试是否:

(ip & netmask) == (range & netmask)
Run Code Online (Sandbox Code Playgroud)

您可以从CIDR参数中确定网络掩码range/netbits,如下所示:

uint32_t netmask = ~(~uint32_t(0) >> netbits);
Run Code Online (Sandbox Code Playgroud)