网卡信息检测与网络流量检测
-
- 网卡信息检测相关类
- 代码分析
- 网络流量检测相关类
- 代码分析
- *特别注意*:
网卡信息检测相关类
1.网络适配器:又称网卡或网络接口卡(NIC),是连接计算机与网络的硬件设备。整理
计算机上发往网线上的数据,并将数据分解为适当大小的数据包之后向网络上发送。
2.System.Net.NetworkInformation命名空间提供了:
对本机网卡相关信息的检测比如本机有多少网卡,网卡名称、速度、硬件地址等。
对本机网络流量的检测比如网络连接配置、接收与发送的数据包等。
(一)NetworkInterface类
NetworkInterface类提供了网络适配器的配置和统计信息。可以利用这个类检测本机有
多少个网络适配器、网络适配器型号以及网络适配器的速度等。
(二)IPInterfaceProperties类
可以利用这个类检测本机所有网络适配器支持的各种地址
NetworkInterface类
^提供网络适配器的配置和统计信息。例如本机有多少个网卡、哪些网络连接可用、网卡型
号、MAC地址和速度等。
^本机的每个网络适配器都包含一个NetworkInterface对象与之对应。
^获取实例:利用NetworkInterface类提供的静态方法得到NetworkInterface类型的数组。
例如:
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL6VFRNVTU65EMRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1MTO3MDMyEjM3IjMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
IPInterfaceProperties类:
^检测本机所有网络适配器支持的各种地址(IPv4和IPv6的网络适配器地址信息),如Dns
服务器的IP地址、网关地址以及多路广播地址。
^IPInterfaceProperties类是抽象类,不能实例化。可以通过NetworkInterface对象的
GetIPProperties()获得其实例
^例如:
NetworkInterface[] adapters =
NetworkInterface.GetAllNetworkInterfaces();
IPInterfaceProperties adapterProperties =
adapters[0].GetIPProperties();
代码分析
(1)StringBuilder sb = new StringBuilder();
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
sb.AppendLine("适配器个数:" + adapters.Length);
int index = 0;
foreach (NetworkInterface adapter in adapters)
{ index++; //显示网络适配器描述信息、名称、类型、速度、MAC地址
sb.AppendLine("-------第" + index + "个适配器信息------");
(2)sb.AppendLine("描述信息:" + adapter.Description);
sb.AppendLine("名称:" + adapter.Name);
sb.AppendLine("类型:" + adapter.NetworkInterfaceType);
sb.AppendLine("速度:" + adapter.Speed / 1000 / 1000 + "M");
byte[] macBytes =
adapter.GetPhysicalAddress().GetAddressBytes();
sb.AppendLine("MAC地址:" +
BitConverter.ToString(macBytes));
(3)//获取IPInterfaceProperties实例
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
//获取并显示DNS服务器IP地址信息
IPAddressCollection dnsServers =
adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{ foreach (IPAddress dns in dnsServers)
{ sb.AppendLine("DNS服务器IP地址:" + dns); } }
}
textBlock1.Text = sb.ToString();
网络流量检测相关类
IPGlobalProperties类
提供了本地计算机网络连接和通信统计数据的信息。
例如,接收到的数据包个数、丢弃的数据包个数等。
检测网络流量时,首先调用IPGlobalProperties类提供的静态方法GetIPGlobalProperties
得到IPGlobalProperties的实例,然后通过该实例的相关属性即可得到需要的信息。
例如:
IPGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties(
);
代码分析
StringBuilder sb = new StringBuilder();
IPGlobalProperties properties =IPGlobalProperties.GetIPGlobalProperties();
IPGlobalStatistics ipstat = properties.GetIPv4GlobalStatistics();
sb.AppendLine("本机注册域名 : " + properties.DomainName);
sb.AppendLine("接收数据包数 : " + ipstat.ReceivedPackets);
sb.AppendLine("转发数据包数 : " + ipstat.ReceivedPacketsForwarded);
sb.AppendLine("传送数据包数 : " + ipstat.ReceivedPacketsDelivered);
sb.AppendLine("丢弃数据包数 : " + ipstat.ReceivedPacketsDiscarded);
textBlock1.Text = sb.ToString();
特别注意:
仅供参考学习,转载请附上原文链接
图片来源于网络、个人收藏、个人制作
该篇文章不做任何商业用途,纯属分享学习心得,如有侵权,望联系本人处理
还在读大学的程序员,项目经验少,如有纰漏,感谢指正
需要源代码请私聊联系本人
谢谢配合
如果这篇文章对您有帮助,小小的点个赞,算是给小学弟的鼓励吧!谢谢大佬!!/呱呱.jpg