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

正文內(nèi)容

計算機(jī)網(wǎng)絡(luò)監(jiān)聽技術(shù)設(shè)計(編輯修改稿)

2025-08-27 02:55 本頁面
 

【文章內(nèi)容簡介】 文件中獲得不同時間不同的統(tǒng)計信息。顯示列表信息和顯示特定數(shù)據(jù)包信息子模塊從數(shù)據(jù)包集合中獲得數(shù)據(jù)。l 管理子系統(tǒng)結(jié)構(gòu)圖,連接子系統(tǒng)結(jié)構(gòu)圖。這兩個子系統(tǒng)結(jié)構(gòu)實(shí)現(xiàn)難度大,但是結(jié)構(gòu)比較簡單,所以在頂層模塊圖中就顯示了他們內(nèi)部的模塊調(diào)用結(jié)構(gòu)。 源碼分析a) 主要數(shù)據(jù)結(jié)構(gòu):見附錄1b) 主要全局變量:static LPADAPTER lpadapter。 //指向描述網(wǎng)絡(luò)適配器實(shí)例的結(jié)構(gòu)的指針;static LPPACKET lppacketr。 //指向描述一組網(wǎng)絡(luò)數(shù)據(jù)報的結(jié)構(gòu)的指針;static char packet_array[1024][1024]。//應(yīng)用程序中存放數(shù)據(jù)包的緩沖區(qū)static char recvbuf[1024*250]。//協(xié)議驅(qū)動程序存放數(shù)據(jù)包的緩沖區(qū)static DWORD auto_ip[255]。//存放需要被管理的主機(jī)的ip地址c) 監(jiān)聽模塊:l void Sniff():功能:獲取數(shù)據(jù)包算法:循環(huán)一百次調(diào)用PacketReceivePacket函數(shù),如果成功開始分析數(shù)據(jù)包(即調(diào)用GetData函數(shù))。l void GetData(LPPACKET lp)功能:分析捕獲的數(shù)據(jù)包,寫入統(tǒng)計信息,寫入數(shù)據(jù)包集合,寫入主機(jī)IP集合參數(shù):指向描述一組網(wǎng)絡(luò)數(shù)據(jù)報的結(jié)構(gòu)的指針;算法:l class FilterDlg : public CDialog{// Constructionpublic: FilterDlg(CWnd* pParent = NULL)。 // standard constructor// Dialog Data //{{AFX_DATA(FilterDlg) enum { IDD = IDD_DEFINE_FILTER }。 BOOL m_arp,m_dns,m_ftp,m_icmp,m_,m_ip,m_ipx,m_netbios。 BOOL m_ospf,m_rip,m_smtp,m_spx,m_tcp,m_telnet,m_udp。//這些變量由來決定是否對這些協(xié)議監(jiān)聽 //}}AFX_DATA// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(FilterDlg) protected: virtual void DoDataExchange(CDataExchange* pDX)。 // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected: // Generated message map functions //{{AFX_MSG(FilterDlg) afx_msg void OnArp(),OnDns(),OnFtp(),OnHttp(),OnIcmp(),OnIp(),OnIpx(),OnNetbois(),OnOspf(),OnRip(),OnSmtp(),OnSpx(),OnTcp(),OnTelnet(),OnUdp(),OnDefault()。//用來在每個checkbox被觸發(fā)時調(diào)用 //}}AFX_MSG DECLARE_MESSAGE_MAP()}。功能:設(shè)置過濾信息算法:通過一系列的checkbox控件,我們來決定需要對那些控件進(jìn)行過濾。比如tcp控件被選中我們就要對tcp協(xié)議進(jìn)行過濾,否則就掠過tcp協(xié)議。但是在我們選擇tcp協(xié)議的同時ip協(xié)議也一定會被選上,所以他們之間存在一定的關(guān)聯(lián)關(guān)系。if( m_tcp == 1 ) { m_ip = 1。 } else { m_ftp = 0。 m_smtp = 0。 m_ = 0。 m_telnet = 0。 }我們以上面的代碼為例討論這個問題,當(dāng)tcp被選中時ip也被選中,當(dāng)tcp被取消時它的高層協(xié)議如ftp,都會被取消。其他的代碼也都是仿照tcp的原則來寫的。d) 顯示模塊:l void ShowPacketCount(CDC *pDC)。功能:調(diào)用該函數(shù)顯示數(shù)據(jù)包的總量和各種協(xié)議數(shù)據(jù)包的分量信息算法:利用統(tǒng)計信息,把統(tǒng)計信息打印出來。l void ShowGraphic(CDC *pDC)。功能:調(diào)用該函數(shù)顯示數(shù)據(jù)包的圖表信息算法:讀取在不同時間點(diǎn)上,記錄在文件中的統(tǒng)計信息,然后以時間為橫軸,百分比為縱軸把統(tǒng)計信息顯示在視圖上。l void ShowConnection(CDC *pDC)。功能:調(diào)用該函數(shù)顯示網(wǎng)絡(luò)中存在通訊的節(jié)點(diǎn)之間的聯(lián)系算法:從packet_array數(shù)據(jù)包接收緩沖區(qū)中,倒序查找十個數(shù)據(jù)包,如果數(shù)據(jù)包類型為tcp,udp,icmp那么就認(rèn)為數(shù)據(jù)包的源和目的主機(jī)之間存在著通訊關(guān)系,于是就把他們的源和目的地址展現(xiàn)在視圖上。l class MyDlg : public CDialog{public: void SetData(char p[][1024],int c)。 MyDlg(CWnd* pParent = NULL)。 // standard constructor int IndexInFieldList。//記錄被選擇需要詳細(xì)顯示的數(shù)據(jù)包的序號 TreeDlg m_treedlg。 //樹行顯示數(shù)據(jù)包的對話框 PVOID packet。 //指向數(shù)據(jù)包數(shù)組packet_arry的指針 int count。 //數(shù)據(jù)包數(shù)組中數(shù)據(jù)包的個數(shù)// Dialog Data //{{AFX_DATA(MyDlg) enum { IDD = IDD_DIALOG }。 CListCtrl m_listCtrl。 //}}AFX_DATA// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(MyDlg) public: virtual int DoModal()。 protected: virtual void DoDataExchange(CDataExchange* pDX)。 // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected: // Generated message map functions //{{AFX_MSG(MyDlg) virtual BOOL OnInitDialog()。 //對話框的初始化函數(shù) afx_msg void OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)。//選擇需要詳細(xì)顯示的數(shù)據(jù)包時觸發(fā)的函數(shù) afx_msg void OnPaint()。 //}}AFX_MSG DECLARE_MESSAGE_MAP()}。功能:該類用來顯示數(shù)據(jù)包的列表信息算法:首先在實(shí)例化該類的時候我們要把packet_array數(shù)據(jù)包接收緩沖區(qū)的指針傳給PVOID packet,通過packet指針我們解析每一個數(shù)據(jù)包,然后把它們的信息以列表形式展現(xiàn)在用戶面前。對數(shù)據(jù)包的解析算法基本上和GetData中的算法相似所以這里就不再重復(fù)了。該類中void OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)函數(shù)的作用是當(dāng)用戶想更加細(xì)致地了解數(shù)據(jù)包地情況下,雙擊列表中地某一個數(shù)據(jù)包,那么它會實(shí)例化class TreeDlg類,來顯示數(shù)據(jù)包地詳細(xì)信息。l class TreeDlg : public CDialog{// Constructionpublic: void SetData(char *p)。 TreeDlg(CWnd* pParent = NULL)。 // standard constructor HTREEITEM m_hRoot。 //樹行結(jié)構(gòu)的根節(jié)點(diǎn) char *packet。 //指向需要詳細(xì)顯示數(shù)據(jù)包的指針// Dialog Data //{{AFX_DATA(TreeDlg) enum { IDD = IDD_TREE_VIEW }。 CTreeCtrl m_tree。 CString m_str。 CString m_substr。 //}}AFX_DATA// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(TreeDlg) protected: virtual void DoDataExchange(CDataExchange* pDX)。 // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected: // Generated message map functions //{{AFX_MSG(TreeDlg) virtual BOOL OnInitDialog()。 afx_msg void OnSelchangingTree(NMHDR* pNMHDR, LRESULT* pResult)。 afx_msg void OnFind()。 //}}AFX_MSG DECLARE_MESSAGE_MAP()}。功能:顯示某一個數(shù)據(jù)包地具體信息,數(shù)據(jù)包包頭信息以樹形結(jié)構(gòu)表現(xiàn)出來,同時提供查找功能,當(dāng)我們輸入一個字符串地時候,可以找到這個字符串的前幾個字符,字符串本身,后幾個字符。算法:當(dāng)MyDlg調(diào)用TreeDlg時就把要具體顯示的數(shù)據(jù)包在緩沖區(qū)中的位置(通過 int IndexInFieldList)告訴了TreeDlg這個類,TreeDlg通過該整型數(shù)據(jù)找到數(shù)據(jù)包在緩沖區(qū)中的位置,然后設(shè)置指針指向該區(qū)域。有了指向數(shù)據(jù)包的指針之后,我們解析這個數(shù)據(jù)包,然后把網(wǎng)絡(luò)各層的數(shù)據(jù)包包頭信息轉(zhuǎn)換成字符串形式,最后顯示出來。CString m_str。//把整個數(shù)據(jù)包可打印的信息存放在該字符串中CString m_substr。//需要查找的子串void OnFind()。//完成查找任務(wù)e) 連接模塊:功能:這個模塊主要分為客戶端和服務(wù)器端,客戶端內(nèi)容比較重要,它主動去連接服務(wù)器來傳輸數(shù)據(jù)。服務(wù)器端指做了簡單的功能,偵聽,接收連接,接收數(shù)據(jù),顯示數(shù)據(jù)。算法:l 客戶端:UINT ThreadConnect(LPVOID pParam){ struct transfer_data *data。 data = (struct transfer_data *)pParam。//獲得被傳送數(shù)據(jù)的指針 ……………………//連接服務(wù)器,并把數(shù)據(jù)傳送過去}static void CALLBACK EXPORT Connect( HWND hWnd, // handle of CWnd that called SetTimer UINT nMsg, // WM_TIMER UINT nIDEvent , // timer identification DWORD dwTime // system time){ = total_count。 = ip_count。 = tcp_count。//對被傳送數(shù)據(jù)進(jìn)行賦值
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1