freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

監(jiān)控ip數(shù)據(jù)包流量系統(tǒng)設(shè)計(jì)書(參考版)

2025-05-17 02:54本頁(yè)面
  

【正文】 (二) 參考書目:[1]謝希仁:計(jì)算機(jī)網(wǎng)絡(luò)(第五版),北京:電子工業(yè)出版社, 2010:122[2]Winpcap文檔: 。這就涉及到線程同步,資源互斥訪問(wèn)等問(wèn)題。這一點(diǎn)大概的實(shí)現(xiàn)思路是每過(guò)一秒后,將統(tǒng)計(jì)結(jié)果鏈表拷貝一個(gè)副本,該副本用于解析和顯示當(dāng)前統(tǒng)計(jì)結(jié)果。增加了界面的靈活度。}七、 課程設(shè)計(jì)總結(jié)(一) 本課程設(shè)計(jì)程序通過(guò)Windows窗口實(shí)現(xiàn)了網(wǎng)絡(luò)抓包,實(shí)現(xiàn)了如下功能:1. 固定時(shí)間內(nèi)流量監(jiān)控和統(tǒng)計(jì)2. 可將結(jié)果顯示和輸出到日志文件3. 可對(duì)數(shù)據(jù)包進(jìn)行簡(jiǎn)單過(guò)濾但是也有不足之處:,界面無(wú)法對(duì)用戶操作進(jìn)行任何響應(yīng)。 }pcap_freealldevs(m_pAllDevs)。 //清空界面 ()。 delete pTemp。 while(pNode) { pTemp = pNode。}/** 在用戶開(kāi)始下一次監(jiān)控之前 清楚之前的數(shù)據(jù)*/void CIPPackCapDlg::ResetData(){ //刪除統(tǒng)計(jì)鏈表中的數(shù)據(jù) CIPNode* pNode = ()。 } ()。 (index, 2, num, 5)。 m_filestreamproto\t\t。 char proto[10] = {0}。 (index, 0, szIP, 30)。 indexcount。 int index。 if (count == 0) { m_filestream 無(wú)監(jiān)控記錄endl。 m_filestream監(jiān)控記錄\n。 m_filestream監(jiān)聽(tīng)適配器 : m_pCurSelDevname39。\n39。 m_filestream日志生成時(shí)間 : (0)。 (%d%d%d %d:%d:%d, (), (), (), (), (), ())。 CString strStartTime。 curTime = CTime::GetCurrentTime()。 } //格式化當(dāng)前時(shí)間和開(kāi)始監(jiān)聽(tīng)時(shí)間 CTime curTime。 if (!m_filestream) { MessageBox(打開(kāi)文件錯(cuò)誤,已取消保存)。 if (IDYES == MessageBox(strTip, 是否保存?, MB_YESNO)) { SaveToFile()。 //詢問(wèn)用戶是否保存 CString strTip。amp。}/** 詢問(wèn)是否保存日志文件 如果選擇是 調(diào)用SaveToFile保存記錄到文件*/void CIPPackCapDlg::AskSaveToFile(){ //如果日志文件一欄不為空 if(m_strOutputFile != ) { //修正用戶文件格式 CString strFileExt = (4)。 //將開(kāi)始監(jiān)控按鈕變?yōu)樵俅伪O(jiān)控 GetDlgItem(IDC_BTN_START)SetWindowText(再次監(jiān)控)。 nIndex++。 (%d, pNodeGetCount())。 } (nIndex, 1, strProto)。 default: strProto = UNKNOWN。 case PROTOCOL_IGMP: strProto = IGMP。 case PROTOCOL_EGP: strProto = EGP。 case PROTOCOL_OSPF: strProto = OSPF。 case PROTOCOL_IGP: strProto = IGP。 case PROTOCOL_UDP: strProto = UDP。 case PROTOCOL_TCP: strProto = TCP。 switch(pNodeGetProtocol()) { case PROTOCOL_ICMP: strProto = ICMP。lIP))。 pNode=pNodepNext) { //顯示源IP地址 long lIP = pNodeGetIPAddress()。 for (pNode=()。}/** 更新輸出控件界面顯示*/void CIPPackCapDlg::UpdateOutput(){ CIPNode* pNode = NULL。 (pheadersrcaddr, pheaderproto)。 //在接收到的數(shù)據(jù)中得到IP首部 IP_HEADER* pheader。 break。 GetDlgItem(IDC_TIME_LEFT)SetWindowText(strLeftTime)。 CString strLeftTime。now_time)。ppktheader, amp。 int ret。 unsigned char* ppkt_data。 time_t left_time。begin_time)。 time_t now_time。}/** 開(kāi)始在該適配器上不斷抓包 并將主要信息填入到統(tǒng)計(jì)鏈表*/BOOL CIPPackCapDlg::StartListenning(){ //使開(kāi)始按鈕和其他輸入框不再響應(yīng)輸入 EnableSomeWindow(FALSE)。 (1, ()/4)。rectCtrl)。 //設(shè)置各列寬度 CRect rectCtrl。 (1, 數(shù)據(jù)包類型)。 GetDlgItem(IDC_TIPS)SetWindowText(szTip)。 _vstprintf(szTip, pszformat, arglist)。 va_start(arglist, pszformat)。 } return TRUE。bpfCode) 0) { MessageBox(設(shè)置捕獲過(guò)濾器失敗! )。 return FALSE。 //編譯過(guò)濾器 if (pcap_pile(m_fpSelDev, amp。 } else { //默認(rèn)為C類地址 netmask = 0xffffff。}/** 編譯并設(shè)置抓取過(guò)濾器*/BOOL CIPPackCapDlg::SetListenFilter(){ //獲取子網(wǎng)掩碼 UINT netmask = 0。 return FALSE。 if ((m_fpSelDev=pcap_open_live(m_pCurSelDevname, 65535, 1, 1000, szErrBuf)) == NULL) { CString strErr(_T(Error In pcap_open_live:\r\n))。 pDevice=pDevicenext, i++) { m_pCurSelDev = pDevice。 for (pcap_if_t* pDevice=m_pAllDevs。 return FALSE。}/** 獲取并以混雜模式打開(kāi)用戶選擇的適配器*/BOOL CIPPackCapDlg::OpenSelDev(){ //獲取適配器列表框當(dāng)前選中的條目 int index = ()。 GetDlgItem(IDC_TIPS)SetWindowText(監(jiān)聽(tīng)正常結(jié)束)。 //輸出提示信息 SetTipsInfo(正在監(jiān)聽(tīng):%s, m_pCurSelDevname)。 } //獲取并打開(kāi)用戶選擇的適配器 if (!OpenSelDev()) return。 } //是否選擇有效過(guò)濾器 if (m_strFilter == ) { MessageBox(輸入你的過(guò)濾器)。 //驗(yàn)證是否輸入定時(shí) if(m_uListenTime == 0) { MessageBox(請(qǐng)輸入你要監(jiān)控的時(shí)間)。 ResetData()。 } return TRUE。 } if (m_iDevsCount == 0) { MessageBox(No Adapter Find !)。 pDev = pDevnext) { (m_iDevsCount, pDevname)。 } for (pcap_if_t* pDev = m_pAllDevs。 MessageBox(strErr)。m_pAllDevs, szErrBuf) == 1) { CString strErr(_T(Err In pcap_findalldevs: \r\n))。}BOOL CIPPackCapDlg::FindAndShowAllDevs(){ char szErrBuf[PCAP_ERRBUF_SIZE] = {0}。 } else { CDialog::OnPaint()。 int y = (() cyIcon + 1) / 2。rect)。 CRect rect。 // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON)。 }}void CIPPackCapDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this)。 ()。 }void CIPPackCapDlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID amp。 //設(shè)置默認(rèn)過(guò)濾器 ((CComboBox*)GetDlgItem(IDC_COMBO_FILTER))SetCurSel(0)。 // Set small icon // 查找并顯示所有適配器 如果失敗則結(jié)束程序 if(!FindAndShowAllDevs()) EndDialog(IDOK)。s main window is not a dialog SetIcon(m_hIcon, TRUE)。 pSysMenuAppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu)。 (IDS_ABOUTBOX)。 CMenu* pSysMenu = GetSystemMenu(FALSE)。 0xFFF0) == IDM_ABOUTBOX)。 //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CIPPackCapDlg, CDialog) //{{AFX_MSG_MAP(CIPPackCapDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BTN_START, OnBtnStart) ON_WM_CLOSE() //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CIPPackCapDlg message handlersBOOL CIPPackCapDlg::OnInitDialog(){ CDialog::OnInitDialog()。 DDV_MaxChars(pDX, m_strOutputFile, 256)。 DDX_Text(pDX, IDC_EDIT_LISTENTIME, m_uListenTime)。 //{{AFX_DATA_MAP(CIPPackCapDlg) DDX_Control(pDX, IDC_LIST_STATISTICS, m_statisticsListCtrl)。 m_bHadListend = FALSE。 m_fpSelDev =
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1