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

  网络适配器: 又称网卡或网络接口卡(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方法执行成功


//远程服务器IP
string 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());
}

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

时间: 2024-08-28 00:41:51

五、网卡信息检测与网络流量检测的相关文章

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

网卡信息检测与网络流量检测 ? 每台计算机进行网线通讯,都要借助一个硬件设备,网卡,简称NIC,NIC 是 Network Interface Controller 的缩写.网卡则负责将比特流转换成电信号发送出去和将检测到的电信号转换成比特流并接收. 网络适配器: 又称网卡是连接计算机与网络的硬件设备. 整理计算机上发往网线上的数据,并将数据分解为适当大小的数据包之后向网络上发送. 在C#中,提供了System.Net.NetworkInformation命名空间,来提供网卡的相关信息. 其中包

实现网络连通检测的五种方法

方法一: windows下调用icmp.dll库,实现ping连通检测,缺点是不能跨平台,受限于icmp.dll库: // windows下调用icmp.dll库实现网络连通检测示例代码 #include <Winsock2.h> #include <iphlpapi.h> #include <stdio.h> #pragma comment(lib,"Iphlpapi.lib") #pragma comment(lib,"Ws2_32.l

网络异常检测

网络异常检查 2 作者 CppLive | 发表于 2012-02-17 文章分类 : C语言, Linux, Windows, 应用与编程, 网络 标签: Android, iPhone, Linux, Windows, 套接字, 路由 一.本文目的 在涉及网络编程的实际项目应用中,由于网络不可能一直处于理想状态,TCP长连接也可能随时正常或异常地断开,如果不予处理,那么就可能因此而给程序带来很多潜在的问题. 编写该文档的目的就在于针对网络程序中可能遇到的各种问题,拿出来与大家探讨一下具体问题

KDD Cup 99网络入侵检测数据的分析

看论文 该数据集是从一个模拟的美国空军局域网上采集来的 9 个星期的网络连接数据, 分成具有标识的训练数据和未加标识的测试数据.测试数据和训练数据有着不同的概率分布, 测试数据包含了一些未出现在训练数据中的攻击类型, 这使得入侵检测更具有现实性. 在训练集中包含了1种正常的标识类型 normal 和 22种训练攻击类型. 1.KDDCup99入侵检测实验数据的标识类型 标识类型 含义 具体分类标识 Normal 正常记录 normal DOS 拒绝服务攻击 back, land, neptune

网络入侵检测

netstat -anlp | grep 80 | grep tcp | awk '{print $5}' | awk -F: '{print $1}' |sort | uniq -c | sort -nr | head -n20 netstat -ant | awk '/:80/{split($5,ip,":");++A[ip[1]]} END {for(i in A) print A[i],i}'  | sort -rn | head -n 20 tcpdump -i eth0 -

网络超时检测的三种方法

作者:于老师,华清远见嵌入式学院讲师. 网络通信中,很多操作会使得进程阻塞,这时我们要设定时间,到时间后强制返回,避免进程在没有数据的情况下无限阻塞 这里我们总结一下网络超时检测的三种方法: 通过setsockopt设置套接字属性SO_RCVTIMEO struct timeval t = {5, 0}           if  (setsockopt(listenfd, SOL_SOCKET, SO_RCVTIMEO, &t, sizeof(t)) == -1) {             

性能调优之网络速度检测

Esri提供了一个使用简单的网络速度检测应用,能检测两台电脑直接进行数据包传输的平均速率.可以用于检测以下类似问题: 为何本地电脑ArcMap访问共享文件夹上的数据时特别慢. 为何ArcGIS Server使用共享文件夹上的数据进行服务发布时,服务响应特别慢. 该应用是一个使用JavaScript编写的应用,只需要部署在支持HTML的Web服务器上即可. 笔者使用了以下环境来部署: Tomcat 7 Windows Server 2008 部署完后,访问服务器Tomcat的应用地址(例如:192

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络 资源获取链接:点击这里 第1章 课程介绍 本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 1-1 课程导学 第2章 目标检测算法基础介绍 本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-sta

五大免费企业网络入侵检测工具(IDS)

Snort一直都是网络入侵检测(IDS)和入侵防御工具(IPS)的领导者,并且,随着开源社区的持续发展,为其母公司Sourcefire(多年来,Sourcefire提供有供应商支持和即时更新的功能齐全的商业版本Snort,同时仍然免费提供功能有限的免费版本Snort)持续不断的支持,Snort很可能会继续保持其领导地位. 虽然Snort"称霸"这个市场,但也有其他供应商提供类似的免费工具.很多这些入侵检测系统(IDS)供应商(即使不是大多数)结合Snort或其他开源软件的引擎来创建强大