2012-01-27 35 views
3

我想计算来自2个给定IP地址的IP地址数量。是否有简单的方法来计算来自2个给定IP地址的IP数量?

例子:127.0.1.10127.0.0.20067 IP地址..

什么是这样做的简单的方法?

+0

我只看到两个地址。 – Groo 2012-01-27 11:04:59

+2

这很困难,因为根据子网的大小,255或0可能需要特殊处理。如果你不关心给予这些地址特殊处理,你可以简单地转换为int和减去(如果你想让两端都包含在内,就添加一个)。 – CodesInChaos 2012-01-27 11:05:32

+5

将两者都转换为整数,然后减去! (你必须考虑网络和广播地址) – Aziz 2012-01-27 11:06:05

回答

5
int IPToInt(string IP) 
{ 
    return IPAddress.NetworkToHostOrder(BitConverter.ToInt32(IPAddress.Parse(IP).GetAddressBytes(), 0)); 
} 

int num = IPToInt("127.0.1.10") - IPToInt("127.0.0.200") + 1; 
3

要计算范围或子网中的IP地址数量,需要使用子网掩码。从这里你可以知道IP的哪部分是网络和哪些是主机。主机部分会告诉你在子网内有多少主机是可能的。子网掩码是专门设计的,因此硬件/软件可以区分IP的网络部分以及主机部分是什么。

没有它,我怀疑你什么都不知道。

相关问题