网络中的主机IP范围

时间:2012-05-02 06:30:54

标签: c# network-programming

我能够以编程方式获得IP addressSubnet Mask。有没有办法用这两个信息生成所有可寻址的主机IP?

我只是想为我的应用程序开发一个简单的Ping Sweep模块。

感谢。

PS:我使用的是C#.NET 3.5。

1 个答案:

答案 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.1192.168.132.254,包括在内。