【问题标题】:Is there easy way of calculating number of IPs from 2 given IP addresses?有没有简单的方法可以从 2 个给定的 IP 地址计算 IP 数量?
【发布时间】:2023-03-22 07:25:01
【问题描述】:

我想从 2 个给定的 IP 地址计算 IP 地址的数量。

例如:127.0.1.10127.0.0.20067 IP 地址..

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

【问题讨论】:

  • 这很困难,因为 255 或 0 可能需要根据子网的大小进行特殊处理。如果您不关心对这些地址进行特殊处理,您可以简单地转换为 int 并减去(如果您希望两端都包含,则添加一个)。
  • 将两者都转换为整数,然后相减! (你必须考虑网络和广播地址)
  • 正如this answer 指出的那样,如果IP 不在同一个子网上,答案会非常不同。我建议在你的问题中澄清这一点。

标签: c#


【解决方案1】:
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; 

【讨论】:

    【解决方案2】:

    要计算某个范围或子网中的 IP 地址数量,您需要子网掩码。从中您可以知道 IP 的哪一部分用于网络,哪些是主机。主机部分将告诉您子网内可能有多少主机。子网掩码是专门设计的,以便硬件/软件可以区分 IP 的网络部分是什么,以及它的主机部分是什么。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 2013-07-17
      • 2020-10-13
      • 1970-01-01
      • 2020-01-10
      • 2012-08-30
      • 1970-01-01
      相关资源
      最近更新 更多