我能够以编程方式获得IP address
和Subnet Mask
。有没有办法用这两个信息生成所有可寻址的主机IP?
我只是想为我的应用程序开发一个简单的Ping Sweep
模块。
感谢。
PS:我使用的是C#.NET 3.5。
答案 0 :(得分:6)
计算第一个和最后一个主机IP地址,然后按顺序迭代它们。第一个IP地址是(address & mask) + 1
。最后一个是(address | ~mask) - 1
。
因此,如果网络为192.168.132.0
且网络掩码为255.255.255.0
,则第一个符合条件的主机IP为:
(address & mask) + 1
(192.168.132.0 & 255.255.255.0) + 1
192.168.132.0 + 1
192.168.132.1
最后符合条件的主机IP是:
(address | ~mask) - 1
(192.168.132.0 | ~(255.255.255.0)) - 1
(192.168.1.32.0 | (0.0.0.255)) - 1
192.168.132.255 - 1
192.168.132.254
因此,有效的主机地址为192.168.132.1
到192.168.132.254
,包括在内。