.net - 在 C# 中确定 IPv4 子网掩码

标签 .net c#-4.0 windows-server-2008 ipv4 subnet

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

我过去一直使用网络计算器来实现此目的,但是我正在尝试弄清楚如何在 C# 中以编程方式完成此操作。我找到了这篇文章HERE ,这很有意义(从中学到了一些东西),但有点令人困惑。我过去使用的计算器向我提供了子网掩码,例如 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)。

告诉我这是否是您所需要的或者是否还有其他内容。

关于.net - 在 C# 中确定 IPv4 子网掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9943135/

相关文章:

c# - 查询本地管理员组

.net - System.Diagnostics.Process.Start() 从 WCF 服务运行时拒绝访问

c# - 如何将 DataTable 从类传递到页面

c# - 使用 linq 从 select new 返回多行

c# - 无法将新实例添加到泛型类中的泛型列表。为什么?

.net - 具有 GUI 前端的 Windows 服务应用程序

.net - 在 .NET 中解析 TeamCity(Java?)生成的时间戳?

c# - 试图避免服务器上的流量

asp.net - 使用 Web API 的动态路由

windows-server-2008 - 无法到达 Windows 服务器 : "Please wait for the Local Session Manager"