如何用c++实现局域网流量监控程序
需要实现一下功能:
1 监听子系统
监听子系统再划分为两个功能,捕获功能,保存功能;两个功能描述如下:
(1)捕获功能:
捕获IP,TCP,UDP,ICMP等数据包,并把数据包保存到程序的缓冲区内。
(2) 保存功能:
在捕获数据的过程中,每几秒钟,把统计信息写入文件中,等待图表显示功能模块提取信息。保存功能为用户的需要,保存数据。如果被启动,系统将满足用户要求的主机IP地址,记录在IP数据集合中。等待系统从中提取IP地址,实现信息查阅。
2 显示子系统
这些功能的详细描述如下:
(1)总量显示功能:
在抓包过程中显示捕获数据包的总量,也就是从开始监听一直到结束,显示捕获的所有数据包的数量。
(2)分量显示功能:
在抓包过程中显示各种数据包的分量,以及它们在总量中比例(百分比显示)各种数据包的百分比是指,某种类型的数据包除以捕获的数据包的总量。
(3)列表显示功能:
在抓包终止后,显示捕获的数据包的信息。包括:包的端口,包的源和目的地址包的长度,包的简要说明
(4)保存信息显示功能:
每次捕获包后,将数据保存所放的目录位置显示出来。
3 流量分析功能
从捕获的数据包中提取出表示数据包大小的字段,以统计局域网(或单一主机)每秒钟的网络流量,并将每秒钟的流量用折线绘制于图上。