如何知道从子网掩码中搜索哪些IP地址

How to know what IP addresses to search from subnet mask?

本文关键字:IP 地址 搜索 何知道 子网掩码      更新时间:2023-10-16

我正在编写一个简单的程序,用于通过局域网进行搜索,程序有几个选项如何搜索(检查单个IP地址,检查主机名,检查本地机器子网....等)。

和我卡住了"检查本地机器子网"(至少我认为这可能是一个问题)!?

好的,这是什么可能是一个问题,所以我想知道如果有一种方法来处理c++。

当我使用getadapteraddresses()获取IP地址和子网掩码以便我可以搜索本地机器子网时,我的疑问是如果getadapteraddresses()返回子网- 255.255.254.0和IP - 192.160.5.10。第一步是搜索192.168.5.0-255,但下一步,我应该搜索192.168.6.0-255或192.168.4.0-255的范围…?

如果在c++中有办法确定这一点,任何提示都将是伟大的。

谢谢你

你可以用像

这样的东西来计算所有的地址
int count = (~netmask) & 0x7FFFFFFF;
int network = ip_address & netmask;
for (int i=1; i<count; i++) {
    int addr = network + i;
    ...
}

伙计,我想你搞错了。192.168.5.X不在255.255.254.0的范围内。该子网掩码允许的地址范围为192.168.0.0 ~ 192.168.1.255。如果5是主机部分,掩码必须为255.255.248.0。