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

时间:2016-08-13 20:55:39

标签: c++ windows visual-studio ip-address subnet

我正在编写一个简单的程序来搜索LAN,程序有几个选项如何搜索(检查单个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 ++中确定这一点,那么任何提示都会很棒。

谢谢:)

1 个答案:

答案 0 :(得分:1)

您可以使用类似

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