c++ - IP 属于 CIDR 范围

标签 c++ c ip

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

最佳答案

只是测试是否:

(ip & netmask) == (range & netmask)

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

uint32_t netmask = ~(~uint32_t(0) >> netbits);

关于c++ - IP 属于 CIDR 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7559803/

相关文章:

c++ - 正确放置 "toCSV"函数 : In each object, 还是放在通用类中?

c - 绘制和显示数组的简单方法?

c - 当用 C89 和 C99 编译时,什么 C 程序在运行时表现不同?

php - 从外部网络访问phpmyadmin?

linux - 如何使用 bash 找出您的 IP 地址

networking - 使用 FFMPEG 从 RTP 流解码 G.729 (PCAP)

c++ - 关于派生类成员隐藏基类成员的警告

c++ - 相同的地址,多个 shared_ptr 计数器,C++ 标准是否禁止?

c++ - 为什么这会导致 Mac 上的无限循环?

c - 单独使用递归构建最小堆