确定C#中的IPv4子网掩码



由于我必须安装相当多的Windows Server机器,我决定用C#编写一个小程序来帮助简化其中的一些任务。我必须添加的最后一个功能是输入IP范围(例如74.117.238.112/28),并让它自动将所有这些作为静态IP添加到NIC。

我过去一直使用网络计算器来实现这一点,但我正试图弄清楚如何用C#编程实现。我在这里发现了这篇文章,它很有道理(从中学到了一些),但有点令人困惑。我过去使用过的计算器为我提供了255.255.255.240或.248这样的子网掩码,因为这似乎只返回四个值中的一个。

这个代码示例是正确的,还是需要进一步修改才能真正使用?

您提到的链接为您提供了不同IP类的标准子网掩码。这并不是真正的子网。

如果我理解正确,您只需要子网掩码,它只取决于子网(在您的示例中为/28),而不是ip地址。

我写了这个小函数::

    public static string GetSubnetMask(byte subnet)
    {
        long mask = (0xffffffffL << (32-subnet)) & 0xffffffffL;
        mask=IPAddress.HostToNetworkOrder((int)mask);
        return new IPAddress((UInt32)mask).ToString();
    }

如果用子网(例如28)调用它,它将以字符串(255.255.255.240)的形式返回子网。

告诉我这是你需要的,还是还有其他东西。

最新更新