You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#应用程序中查询Windows网络适配器的子网掩码?

Windows下用C#查询网络适配器子网掩码的方法

可以通过.NET的System.Net.NetworkInformation命名空间实现查询,以下是具体代码示例:

using System;
using System.Net.NetworkInformation;

class NetworkMaskQuery
{
    static void Main()
    {
        // 获取系统中所有网络适配器
        foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
        {
            // 筛选启用状态的有线/无线网卡(可按需调整筛选条件)
            if ((ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet || 
                 ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211) && 
                 ni.OperationalStatus == OperationalStatus.Up)
            {
                Console.WriteLine($"适配器名称: {ni.Name}");
                Console.WriteLine($"适配器描述: {ni.Description}");
                
                // 获取适配器IP配置属性
                IPInterfaceProperties ipProps = ni.GetIPProperties();
                foreach (UnicastIPAddressInformation ipAddrInfo in ipProps.UnicastAddresses)
                {
                    // 仅处理IPv4地址(如需IPv6可修改AddressFamily判断)
                    if (ipAddrInfo.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                    {
                        Console.WriteLine($"IPv4地址: {ipAddrInfo.Address}");
                        Console.WriteLine($"子网掩码: {ipAddrInfo.IPv4Mask}");
                        Console.WriteLine("---");
                    }
                }
            }
        }
    }
}

关键说明

  • NetworkInterface.GetAllNetworkInterfaces():获取系统内所有网络适配器,包括虚拟网卡、禁用设备等,需通过筛选条件缩小范围。
  • OperationalStatus.Up:仅筛选处于启用状态的适配器,避免获取无效配置。
  • IPv4Mask属性:直接对应IPv4的子网掩码;若需查询IPv6前缀长度,可使用ipAddrInfo.PrefixLength属性。

内容的提问来源于stack exchange,提问作者Boris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:22:43