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

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

我正在编写用于通过 LAN 进行搜索的简单程序,该程序几乎没有如何搜索的选项(检查单个 IP 地址、检查主机名、检查本地计算机子网...等)。

我卡在 "check local machine subnet"(至少我认为这可能是个问题)!?

好的,这可能是一个问题,所以我想知道是否有一种方法可以在 C++ 中处理它。

当我使用 getadapteraddresses() 获取 IP 地址和子网掩码以便搜索本地计算机子网时,我怀疑 getadapteraddresses() return 子网 - 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.