2

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

我过去一直为此使用网络计算器,但是我试图弄清楚如何在 C# 中以编程方式进行操作。我在这里找到了这篇文章,这很有意义(从中学到了一点),但有点令人困惑。我过去使用的计算器为我提供了 255.255.255.240 或 .248 等子网掩码,因为这似乎只返回四个值之一。

此代码示例是否正确,还是需要进一步修改才能实际使用?

4

1 回答 1

5

您提到的链接为您提供了不同 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)的形式返回子网。

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

于 2012-03-30T14:22:19.167 回答