如何计算两个ips之间的主机数量? C#

时间:2014-11-26 13:48:39

标签: c# algorithm ip

我有两个ips:

1. 1.1.1.1
2. 4.4.4.4

显然这只是一个例子,这是一个动态计算器

如果子网掩码不相关,如何计算所述ips之间的主机数?

2 个答案:

答案 0 :(得分:5)

要计算(理论上)IP地址的数量,您可以将每个IP地址转换为32位整数格式(实际上它实际上是这样),那么它只是一个简单的问题减法:

1.1.1.1 = 0x01010101 = 16843009
4.4.4.4 = 0x04040404 = 67372036

不包括起始地址和结束地址的地址数:

67372036 - 16843009 - 1 = 50529026

包括起始地址和结束地址的地址数量:

67372036 - 16843009 + 1 = 50529028

实际可用地址的数量会略低一些。通常,每个C范围内的一些地址都保留用于网关(路由器)等。

答案 1 :(得分:1)

IPv4地址可以用整数(4字节,32位)

表示

为简化问题,假设

  • 所有IP地址均可使用
  • 每个IP地址一个主机

然后,converting both IP addresses to integer计算出差异将是可用主机的数量。