我正在编写一个简单的程序来搜索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 ++中确定这一点,那么任何提示都会很棒。
谢谢:)
答案 0 :(得分:1)
您可以使用类似
的内容计算所有地址int count = (~netmask) & 0x7FFFFFFF;
int network = ip_address & netmask;
for (int i=1; i<count; i++) {
int addr = network + i;
...
}