网学网其他类别编辑为广大网友搜集整理了:网卡信息的捕获和循环捕获数据包绩等信息,祝愿广大网友取得需要的信息,参考学习。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
1.1 MFC控件相关 通过设置不同的按钮来实现不同的控制功能,还可以通过设置list表来显示信息。其中这里主要说下关于list表的问题。其他的控件都比较简单就不在这里多说了。 将list的属性中的style里查看选项改成了report格式,然后通过插入语句来实现对表项中每一列显示信息种类的设置。 //设置监听状况表项 m_list1.InsertColumn( 0, _T("协议类型"), LVCFMT_LEFT, 60); m_list1.InsertColumn( 1, _T("时间"), LVCFMT_LEFT, 70); m_list1.InsertColumn( 2, _T("包头长"), LVCFMT_LEFT, 60); m_list1.InsertColumn( 3, _T("源IP地址"), LVCFMT_LEFT, 125); m_list1.InsertColumn( 4, _T("目的IP地址"), LVCFMT_LEFT, 125); m_list1.InsertColumn( 5, _T("源端口号"), LVCFMT_LEFT, 60); m_list1.InsertColumn( 6, _T("目的端口号"), LVCFMT_LEFT, 80); 设置第一列为协议类型,然后第二到七列分别为捕获到数据包的时间戳、包头长度、源IP、目的IP、源端口号和目的端口号。 然后在抓包函数执行后得到我们需要的信息后执行和列的插入来将数据返回界面并显示出来。 row=m_list1.GetItemCount(); row=m_list1.InsertItem(row,ip_header_proto); //协议类型 m_list1.SetItemText(row,1,time1); //捕获数据包的时间戳 m_list1.SetItemText(row,2,bag_header_len); //包头长度 m_list1.SetItemText(row,3,sourceip); //源IP m_list1.SetItemText(row,4,desip); //目的IP m_list1.SetItemText(row,5,sourceport); //源端口号 m_list1.SetItemText(row,6,desport); //目的端口号 其中数据包的显示是通过定时器每隔一秒钟触发调用一次将捕捉到的数据包信息返回插入到list表中 1.2 定时器和系统时间的获得 SetTimer(1,1000,NULL); //设置定时器,1000ms触发一次 … … CDialog::OnTimer(nIDEvent); // 获得系统当前时间 SYSTEMTIME tNow; GetLocalTime(&tNow); m_tc.Format("%2d:%2d:%2d",tNow.wHour,tNow.wMinute,tNow.wSecond); UpdateData(false); 其中设置定时器放在程序的初始化里边,通过控件显示定时器每个一秒触发一次获取当前时间函数所得到的时间。定时器的设置在捕获网络数据包函数还将会使用到,后面会详细说明。 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |