网络适配器: 又称网卡或网络接口卡(NIC),是连接计算机与网络的硬件设备。

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

   System.Net.NetworkInformation命名空间提供了:

     对本机网卡相关信息的检测比如本机有多少网卡,网卡名称、速度、硬件地址等。

    对本机网络流量的检测比如网络连接配置、接收与发送的数据包等。

     Ping类检测本机是否可访问网络上的其它计算机。

  NetworkInterface

    提供了网络适配器的配置和统计信息。可以利用这个类检测本机有多少个网络适配器、网络适配器型号以及网络适配器的速度等。

    位于System.Net.NetworkInformation命名空间下,它提供了网络适配器的配置和统计信息。该类可以方便地检测本机有多少个网卡、哪些网络连接可用,并可获取某个

    网卡的型号、MAC地址和速度等信息。

     对于本机的每个网络适配器,该数组中都包含一个NetworkInterface对象与之对应。

     获取实例:不能直接使用new关键字构造该类的实例,而是利用NetworkInterface类提供的静态方法GetAllNetworkInterfaces,得到NetworkInterface类型的数组。

    NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();

    常用的属性和方法

属性及方法

说明

Name属性

获取网络适配器的名称

Speed属性

获取网络适配器的速度(bit/秒)

GetAllNetworkInterfaces方法

返回描述本地计算机上的所有网络适配器对象

GetIPProperties方法

回描述此网络适配器配置的对象

GetIsNetworkAvailable方法

指示是否有任何可用的网络连接

GetPhysicalAddress方法

返回此适配器的媒体访问控制(MAC)地址

Supports方法

指示接口是否支持指定的协议(IPv4或IPv6)

  IPInterfaceProperties

    可以利用这个类检测本机所有网络适配器支持的各种地址

    检测本机所有网络适配器支持的各种地址(IPv4和IPv6的网络适配器地址信息),如Dns服务器的IP地址、网关地址以及多路广播地址。

    获取实例:

    NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();

    IPInterfaceProperties adapterProperties = adapters[0].GetIPProperties();

    属性和方法

    

属性及方法

说   明

AnycastAddresses属性

获取分配给此接口的任意广播IP地址

DhcpServerAddresses属性

获取此接口的动态主机配置协议(DHCP)服务器的地址

DnsAddresses属性

获取此接口的域名系统(DNS)服务器的地址

DnsSuffix属性

获取与此接口关联的域名系统(DNS)后缀

GatewayAddresses属性

获取此接口的网关地址

MulticastAddresses属性

获取分配给此接口的多路广播地址

UnicastAddresses属性

获取分配给此接口的单播地址

GetIPv4Properties方法

获取此网络接口的Internet协议版本4(IPv4)配置数据

GetIPv6Properties方法

获取此网络接口的Internet协议版本6(IPv6)配置数据

  PhysicalAddress

    提供了网络适配器的媒体访问控制(MAC)地址。

  IPGlobalProperties

  提供本地计算机网络连接相关的信息。例如网络连接配置、接收与发送的数据包等。

  

  IPGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties();IPGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties()IPGlobalStatistics ipstat = properties.GetIPv4GlobalStatistics();listBox1.Items.Add("本机所在域 :" + properties.DomainName);listBox1.Items.Add("接收数据包数 :" + ipstat.ReceivedPackets);listBox1.Items.Add("转发数据包数 :" + ipstat.ReceivedPacketsForwarded);

  TcpConnectionInformation

  提供有关本地计算机上的传输控制协议(TCP)连接的信息。

  

IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();foreach (TcpConnectionInformation t in connections){string str = ""; str += "Local endpoint:" + t.LocalEndPoint.Address;str += ",Remote endpoint:" + t.RemoteEndPoint.Address;str += ", " + t.State; listBox1.Items.Add(str);}

  Pring

  可以使用Ping类检测本机是否可访问网络上的其它计算机。

  类似于Ping.exe命令行工具。

  该类提供的Send和SendAsync方法将Internet控制消息协议(ICMP)回送请求消息发送到远程计算机并等待来自该计算机的ICMP回送答复消息。

  与Ping类一起使用的类型有:

  IPStatus枚举:定义描述 ICMP 回送请求消息结果的状态代码

  PingOptions类:控制如何传输 Ping 数据包

  PingReply类:提供有关 Send 或 SendAsync 操作的状态及产生的数据的信息

  Ping类Send方法

  (1)

    public PingReply Send(IPAddress address) 此方法向address参数指定的主机发送一个包含回送消息的32位Byte数据,然后等待应答消息5秒钟。如果在上述时间内没有收到应答,则直接返回,并将PingReply实例的Status属性设置为TimedOut。

  例如:

    Ping pingSender = new Ping ();

    PingReply reply = pingSender.Send ("www.sohu.com");

  Ping类Send方法

  (2)

    public PingReply Send(string hostNameOrAddress,int timeout,byte[] buffer,PingOptions options)

    参数说明:

    hostNameOrAddress表示目标计算机IP地址或者主机名。

    timeout指定发送回送消息后,等待答复消息的最大毫秒数。

    Buffer是一个Byte数组,存放和回送消息一起发送的数据。

    Options是一个PingOptions对象,用于控制如何传输Ping数据包。

    PingOptions类:控制如何传输 Ping 数据包。

    与此类相关的属性有:

    Ttl 属性为 Ping 类发送的数据包指定生存时间。此值指示在丢弃 Ping 数据包之前可以转发此数据包的路由节点数。

    如果要测试将数据包从源计算机发送到目标计算机所需的转发数(也称为跃点),设置此选项很有用。

    DontFragment 属性控制是否可将发送到远程主机的数据分成多个数据包。如果要测试用于传输数据包的路由器和网关的最大传输单元 (MTU),此选项很有用。

    PingReply类 调用Ping类的Send方法后,即得到PingReply类的实例,该实例提供有关Send或SendAsync操作的状态以及发送请求和接收答复所用的时间等信息。

    常用属性有

    1. Address属性: 获取发送回送答复消息的主机地址

    2. RoundtripTime属性: 获取发送消息所用的往返时间

    3. Status属性: 获取答复的状态,为IPStatus枚举类型。如果值为IPStatus.Success则代表Send方法执行成功

//远程服务器IPstring ipString = "192.168.1.72";//构造Ping实例Ping pingSender = new Ping();//Ping选项设置PingOptions options = new PingOptions();options.DontFragment = true;//测试数据string data = "test data abcabc";byte[] buffer = Encoding.ASCII.GetBytes(data);//设置超时时间int timeout = 120;//调用同步send方法发送数据,将返回结果保存至PingReply实例PingReply reply = pingSender.Send(ipString, timeout, buffer, options);if (reply.Status == IPStatus.Success){Console.WriteLine("答复的主机地址: " + reply.Address.ToString());Console.WriteLine("往返时间: " + reply.RoundtripTime);Console.WriteLine("生存时间(TTL): " + reply.Options.Ttl);Console.WriteLine("是否控制数据包的分段: " + reply.Options.DontFragment);Console.WriteLine("缓冲区大小: " + reply.Buffer.Length);}else{Console.WriteLine(reply.Status.ToString());}

转载于:https://www.cnblogs.com/xchit/p/socket_5.html

五、网卡信息检测与网络流量检测相关推荐

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

    网卡信息检测与网络流量检测 文章目录 网卡信息检测与网络流量检测 网卡信息检测相关类 Network Interface类 获取网卡的信息 IPInterfaceProperties类 实例 网卡单播 ...

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

    网卡信息检测与网络流量检测 网卡信息检测相关类 代码分析 网络流量检测相关类 代码分析 *特别注意*: 网卡信息检测相关类 1.网络适配器:又称网卡或网络接口卡(NIC),是连接计算机与网络的硬件设备 ...

  3. NDR(网络威胁检测及响应)与NTA的区别(网络流量检测)

    近日,全球权威IT研究与咨询机构Gartner发布了2020年<NDR全球市场指南>,山石网科连续两年成为中国唯一入选厂商.这一新闻引发了业界对NDR(网络威胁检测及响应)技术的新一轮关注 ...

  4. 网络安全实验-入侵检测-基于网络入侵检测系统

     实验目的: 1.掌握snort IDS工作机理 2.应用snort三种方式工作 3.熟练编写snort规则 实验原理: 一.snort IDS概述 snort IDS(入侵检测系统)是一个强大的网络 ...

  5. linux网络连通性检测,C++ 网络连通性检测的实现方法

    C++ 网络连通性检测的实现方法 有时程序需要保持和某个指定网络的连通,有人的情况下我们直接用ping命令查看即可,然而程序自身检测会稍微麻烦一点. 实现思路如下: 用程序打开控制台->运行pi ...

  6. 深度学习目标检测---yolov5网络打印输出检测框的像素坐标信息

    1.打开yolov5项目,然后打开dectect.py文件. 2.按键盘 Ctrl+F 进入查找功能,输入 plot_one_box  找到对应的函数.如下图所示: 3.将鼠标放置在该函数上,按住 C ...

  7. 「网络安全专利分析」一种基于多粒度异常检测的网络威胁评估方法

    就像是一场梦,醒来还是很感动,蛋黄的长裙,蓬松的头发,还是很想被你保护,我心里的惨痛.最近又是看论文.又是看专利,还要凑点时间来追剧,难搞哦. 和博士聊了一下得知可以在sci-hub上免费看论文 捣鼓 ...

  8. 鉴源论坛 · 观辙丨基于规则的车载网络入侵检测技术

    作者 | 柳泽上海控安可信软件创新研究院研发工程师 来源 | 鉴源实验室 在过去的几十年中,CAN总线是最广泛被应用的车载网络现场总线.但随着汽车电子产品的功能逐渐丰富,以及新一代的智能辅助驾驶系统的 ...

  9. 轩辕实验室丨基于信息熵的车载网络流量异常检测防御方法

    本文来自轩辕实验室相关研究成果. 本发明通过设定一个检测阈值和固定大小的滑动窗口,计算滑动窗口中流量的信息熵,利用所计算的熵值和阈值对比进行异常判断,实现一种基于信息熵的车载网络流量异常检测防御方法. ...

最新文章

  1. kmeans聚类源代码
  2. jmeter测试soap协议时候 路径不需要添加
  3. 采用集成的Windows验证和使用Sql Server身份验证进行数据库的登录
  4. CodeSmith--SchemaExplorer类结构详细介绍
  5. 判断一个字符串是否为回文-链队(新建,进队,出队),链栈(新建,进栈,出栈)...
  6. HTML+CSS+JS实现 ❤️3D悬浮粒子翻转动效❤️
  7. VC菜菜鸟-创建一个简单的多线程任务
  8. 啊哈C语言 第二章 【代码】【习题答案】
  9. [ 网络协议篇 ] IGP 详解之 OSPF 详解(三)--- OSPF协议报文 链路状态通告 详解
  10. 网站微信扫码支付流程
  11. win7桌面上显示html,win7桌面图标不见了怎么办,显示Windows 7桌面图标的方法
  12. Emojify – Create your own emoji with Deep Learning 通过深度学习创建你自己的表情
  13. 复式记账php版,复式记账法下,账户间存在着( )。
  14. 使用SpringBoot项目继承Knif4j访问doc.html页面,出现No mapping for GET /doc.html
  15. 信创蓝海 合作共赢:统信UOS代理商推介会(郑州站)成功举行
  16. 夏日葵电商:为你揭秘微信商城系统搭建的六大详细步骤
  17. “动感”新春:香港高铁首次加入春运 车票抢手
  18. 项目三《小米官网仿写》
  19. 青岛大学计算机组成与结构,青岛大学计算机组成及结构1-9章作业.docx
  20. 香港科大詹华强发明头发检测吸毒新技术

热门文章

  1. 【数据库】【Mysql - Workbench1】 :如何解决WPS/excel数据导入时Table Data Import报错问题?
  2. 机械设计制造及其自动化技术的特点分析
  3. HDU 1863畅通工程(最小生成树)(prim算法)
  4. 微信小程序加入购物车流程
  5. html 遍历元组queryset,QuerySet的API
  6. Android bug收集整理
  7. Web APP开发和原生app开发优势及区别
  8. 五月手机销量排行TOP10
  9. openGauss 基于Paxos协议的高可用
  10. RationalDMIS2022阵列工件测量