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

正文內(nèi)容

監(jiān)控ip數(shù)據(jù)包流量系統(tǒng)設(shè)計(jì)書-wenkub.com

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

【正文】 可作為課后擴(kuò)展。,而不能以秒為單位及時(shí)地看到網(wǎng)絡(luò)抓包統(tǒng)計(jì)結(jié)果。 CDialog::OnClose()。 } //頭尾指針置空 ()。 CIPNode* pTemp。 m_filestreamnumendl。 (index, 1, proto, 10)。 index++) { char szIP[30] = {0}。 } m_filestream源IP地址\t\t協(xié)議類型\t抓包數(shù)量endl。\n39。 m_filestream開始監(jiān)聽時(shí)間 : (0)39。 CTime startTime = CTime(m_startTime)。 CString strTime。 } }}/** 將得到的結(jié)果存入m_strOutputFile指定的文件*/void CIPPackCapDlg::SaveToFile(){ //打開指定文件 ((0), ios::out|ios::app)。 strFileExt != .TXT) m_strOutputFile+=.txt。}/** 在監(jiān)控期間 使開始按鈕和其他輸入控件不可用* (在單線程中 已形成死循環(huán) 因此用戶不可操作 僅更新按鈕不可用給用戶直觀顯示)*/void CIPPackCapDlg::EnableSomeWindow(BOOL bEnable){ ((CButton*)GetDlgItem(IDC_BTN_START))EnableWindow(bEnable)。 (nIndex, 2, strCount)。 break。 break。 break。 break。 //解析并顯示協(xié)議 CString strProto。 pNode。 } return bNormalExit。 } //超時(shí) 繼續(xù)進(jìn)行下一次抓包 if(ret == 0) continue。 (%d秒, left_time)。ppkt_data)) = 0) { //計(jì)算并顯示剩余時(shí)間 ::time(amp。 BOOL bNormalExit = FALSE。 m_startTime = begin_time。 //獲取開始時(shí)間 time_t begin_time。 (0, ()/2)。 (2, 數(shù)據(jù)包數(shù)目)。 va_end(arglist)。}/** 格式化輸出提示信息*/void CIPPackCapDlg::SetTipsInfo(LPCTSTR pszformat, ...){ va_list arglist。 } //設(shè)置過濾器 if (pcap_setfilter(m_fpSelDev, amp。 } struct bpf_program bpfCode。 } return TRUE。 } //以混雜模式打開該適配器 得到該適配器的描述符 char szErrBuf[PCAP_ERRBUF_SIZE] = {0}。 } //根據(jù)選擇的條目索引 得到用戶選擇的適配器的pcap_if_t結(jié)構(gòu)指針 int i=0。 } //更新輸出以及界面 UpdateOutput()。 //設(shè)置監(jiān)聽過濾器 if (!SetListenFilter()) return。 return。}void CIPPackCapDlg::OnBtnStart() { //如果之前有監(jiān)聽記錄 詢問是否保存記錄到日志文件 //并且重置必要數(shù)據(jù)(統(tǒng)計(jì)鏈表) if (m_bHadListend) { AskSaveToFile()。 ++m_iDevsCount。 return FALSE。 if(pcap_findalldevs(amp。 // Draw the icon (x, y, m_hIcon)。 GetClientRect(amp。 // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) (), 0)。 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout。 //初始化統(tǒng)計(jì)列表控件設(shè)置 InitStatisticsListCtrl()。 } } // Set the icon for this dialog. The framework does this automatically // when the application39。 if (pSysMenu != NULL) { CString strAboutMenu。 // Add About... menu item to system menu. // IDM_ABOUTBOX must be in the system mand range. ASSERT((IDM_ABOUTBOX amp。 DDX_Text(pDX, IDC_EDIT_OUTPUTFILE, m_strOutputFile)。}void CIPPackCapDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX)。 m_iDevsCount = 0。 m_strOutputFile = _T()。 //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX)。 //文件流 用于保存記錄}。 //用戶選中的適配器 pcap_t* m_fpSelDev。 //}}AFX_MSG DECLARE_MESSAGE_MAP()private: BOOL m_bHadListend。 afx_msg HCURSOR OnQueryDragIcon()。 // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected: HICON m_hIcon。 UINT m_uListenTime。 //查找并顯示所有的適配器 CIPPackCapDlg(CWnd* pParent = NULL)。 //初始化統(tǒng)計(jì)列表控件設(shè)置 void SetTipsInfo(LPCTSTR pszformat, ...)。 //詢問用戶是否保存文件 void EnableSomeWindow(BOOL bEnable)。}//////////////////////////////////////////////////////////////////////////////////////////if !defined(AFX_IPPACKCAPDLG_H__682FD3D7_3E3A_4785_B228_62D96973AC09__INCLUDED_)define AFX_IPPACKCAPDLG_H__682FD3D7_3E3A_4785_B228_62D96973AC09__INCLUDED_if _MSC_VER 1000pragma onceendif // _MSC_VER 1000include fstreamusing namespace std。 m_pTailpNext = NULL。 pAddCount()。 p。 m_pTailpNext = NULL。 delete pTemp。 m_pTail = NULL。 //頭指針 CIPNode* m_pTail。 //得到頭指針 void AddNode(long ip, unsigned char proto)。}void CIPNode::AddCount(){ m_lcount++。 m_lcount = 1。 //節(jié)點(diǎn)計(jì)數(shù) unsigned char m_proto。 virtual ~CIPNode()。 void AddCount()。 } pcap_freealldevs(m_pAllDevs)。說明用戶已經(jīng)至少監(jiān)控過一次,調(diào)用AskSaveToFile函數(shù)。UpdateOutput通過遍歷統(tǒng)計(jì)鏈表中的結(jié)果,并獲取其中的信息輸出到表項(xiàng)。 (pheadersrcaddr, pheaderproto)。 break。 CString strLeftTime。ppktheader, amp。 unsigned char* ppkt_data。begin_time)。實(shí)現(xiàn)參見附源代碼 之后便開始打開網(wǎng)卡,設(shè)置過濾器,然后開始一次新的監(jiān)聽,監(jiān)聽代碼如下:// 開始在該適配器上不斷抓包 并將捕獲信息填入到統(tǒng)計(jì)鏈表BOOL CIPPackCapDlg::StartListenning(){ //使開始按鈕和其他輸入框不再響應(yīng)輸入 EnableSomeWindow(FALSE)。 if (IDYES == MessageBox(strTip, 是否保存?, MB_YESNO)) { SaveToFile()。amp。 GetDlgItem(IDC_TIPS)SetWindowText(監(jiān)聽正常結(jié)束)。 } //獲取并打開用戶選擇的適配器 if (!OpenSelDev()) return。 //驗(yàn)證是否輸入定時(shí) if(m_uListenTime == 0) { MessageBox(請(qǐng)輸入你要監(jiān)控的時(shí)間)。 //設(shè)置默認(rèn)過濾器((CComboBox*)GetDlgItem(IDC_COMBO_FILTER))SetCurSel(0)。 //所有適配器指針 ofstream m_filestream。 //存放監(jiān)控內(nèi)容的鏈表 pcap_if_t* m_pCurSelDev。 //打開用戶選定的適配器 BOOL FindAndShowAllDevs()。 //開始抓取數(shù)據(jù)包 void InitStatisticsListCtrl()。 //將最近一次統(tǒng)計(jì)結(jié)果保存到指定文件 void AskSaveToFile()。 } m_pHead = NULL。 } }}CStatisticsList::~CStatisticsList(){ CIPNode* pTemp。 break。 p=ppNext) { //如果該ip已經(jīng)存在 則增加其計(jì)數(shù) if (pGetIPAddress() == ip amp。 } else { //如果鏈表不為空 BOOL bFind = FALSE。 //頭指針 CIPNode* m_pTail。 //得到頭指針 void AddNode(long ip, unsigned char proto)。 //節(jié)點(diǎn)計(jì)數(shù) unsigned char m_proto。 virtual ~CIPNode()。 void AddCount()。 //源IP地址 DWORD dstaddr。 //標(biāo)志和片偏移 unsigned char ttl。 //版本號(hào)以及首部長(zhǎng)度 unsigned char tos。2: 獲取到離線記錄文件的最后一個(gè)報(bào)文32四、 課程設(shè)計(jì)框架1. 核心流程圖: 本程序是VC下基于對(duì)話框的窗口程序。fp是一個(gè)指向bpf_program結(jié)構(gòu)體的指針,通常是pcap_pile()執(zhí)行的結(jié)果。pcap_pile()被用來(lái)將字符串str編譯進(jìn)過濾器程序(fp),程序(fp)是一個(gè)指向bpf_program結(jié)構(gòu)體并被pcap_pile()賦值的指針。str,int本程序?qū)⒈O(jiān)聽模式設(shè)為混雜模式。to_ms參數(shù)指*定超時(shí)時(shí)間(毫秒)。得到網(wǎng)卡信息之后,可以通過列表框等形式顯示出
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1