C#编程_网卡信息检测与网络流量检测

本文介绍了C#中如何检测网卡信息和网络流量,包括使用NetworkInterface类获取网卡的详细信息,如适配器数量、速度、MAC地址等;通过IPInterfaceProperties类获取DNS服务器、网关地址等;以及利用IPGlobalProperties类监测网络连接状态和通信统计数据。此外,还强调了调试程序和查阅官方文档的重要性。
摘要由CSDN通过智能技术生成

网卡信息检测与网络流量检测


​ 每台计算机进行网线通讯,都要借助一个硬件设备, 网卡,简称 NICNICNetwork Interface Controller 的缩写。网卡则负责将 比特流转换成电信号发送出去和将检测到的 电信号转换成比特流并接收。

网络适配器:

  • 又称网卡是连接计算机与网络的硬件设备。

  • 整理计算机上发往网线上的数据,并将数据分解为适当大小的数据包之后向网络上发送。

    在C#中,提供了System.Net.NetworkInformation命名空间,来提供网卡的相关信息。

其中包括:

  • 对本机网卡相关信息的检测
  • 本机有多少网卡,网卡名称、速度、硬件地址等。
  • 对本机网络流量的检测
    • 网络连接配置、接收与发送的数据包等。

网卡信息检测相关类

Network Interface类

提供了网络适配器的配置和统计信息:

  • 网络适配器个数

  • 网络适配器型号

  • 网络适配器的速度

  • 网络适配器MAC地址

  • 网络适配器连接是否可用

每个网络适配器都包含一个NetworkInterface对象与之对应。

属性及方法 说明
Name属性 获取网络适配器的名称
Speed属性 获取网络适配器的速度(*bit/*秒)
GetAllNetworkInterfaces方法 返回描述本地计算机上的所有网络适配器对象
GetIPProperties方法 返回描述此网络适配器配置的对象
GetIsNetworkAvailable方法 指示是否有任何可用的网络连接
GetPhysicalAddress方法 返回此适配器的媒体访问控制(MAC)地址
Supports方法 指示接口是否支持指定的协议(IPv4或IPv6)
获取网卡的信息
 private static void NetworkInterfaces()
        {
            #region NetWorkInterface
            //利用NetworkInterface类提供的静态方法得到NetworkInterface类型的数组。
            NetworkInterface[] networkInterface = NetworkInterface.GetAllNetworkInterfaces();//声明并初始化了一个 NetworkInterface类的对象数组。
            Console.WriteLine($"网络适配器的个数为:{networkInterface.Length}");
            Console.WriteLine($"是否有可以用网络连接:{NetworkInterface.GetIsNetworkAvailable()}");
            Console.WriteLine();
            foreach (NetworkInterface network in networkInterface)
            {
                Console.WriteLine($"网卡名字:{network.Name}");
                Console.WriteLine($"物理地址:{network.GetPhysicalAddress()}");
                Console.WriteLine($"速度:{network.Speed}");
                Console.WriteLine($"网卡ID:{network.Id}");
                Console.WriteLine($"网卡描述:{network.Description}");

                Console.WriteLine($"是否仅接受数据包:{network.IsReceiveOnly}");
                Console.WriteLine($"是否支持IPV4:{network.Supports(NetworkInterfaceComponent.IPv4)}");
                Console.WriteLine($"是否支持IPV6:{network.Supports(NetworkInterfaceComponent.IPv6)}");
                Console.WriteLine("-----------------------------------------------------------------");

            }
网卡名字:本地连接* 1
物理地址:144F8A2158EB
速度:-1
网卡ID:{
   FA9901D2-C3AD-412B-BCC2-D6FF592EE29B}
网卡描述:Microsoft Wi-Fi Direct Virtual Adapter
是否仅接受数据包:False
是否支持IPV4:True
是否支持IPV6:True

IPInterfaceProperties类

  • 检测本机所有网络适配器支持的各种地址

    • Dns服务器的IP地址、网关地址以及多路广播地址。
  • IPInterfaceProperties类是抽象类,不能实例化。

    • 通过NetworkInterface对象的GetIPProperties()获得其实例

IPInterfaceProperties类常用的属性和方法

属性及方法 说明
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值