




免費預覽已結束,剩余81頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
畢業(yè)設計 論文 任務書畢業(yè)設計 論文 任務書 姓姓 名名 題題 目目計算機網絡連接監(jiān)控系統(tǒng) 設設 計計 任任 務務 1 了解網絡編程方面的知識 能使用 Visual Basic 進行 網絡編程 2 查閱與課題有關的中外文文獻 完成外文文獻翻譯任 務 3 編程實現(xiàn)對本機與遠程計算機的網絡連接情況的監(jiān)控 4 有完整的實現(xiàn)程序 時時 間間 進進 度度 1 1 2 21 3 5 查閱與課題有關的中外文文獻 完成外文 文獻翻譯任務 2 2 3 6 3 25 掌握 Visual Basic 網絡編程的方法 3 3 3 26 4 10 設計出程序實現(xiàn)方案 4 4 4 11 5 31 完成網絡監(jiān)控系統(tǒng) 5 5 6 1 6 15 撰寫畢業(yè)設計論文 參加答辯 原原 要要 始始 參參 資資 考考 料料 文文 和和 獻獻 主主 1 劉宏 網絡監(jiān)控系統(tǒng) 計算技術與自動化 17 3 2 2 王曉慧 計算機網絡監(jiān)控系統(tǒng)的應用與發(fā)展 民航經濟 與技術 系系主主任任 指指導導教教師師 畢業(yè)設計 論文 評審表 一 畢業(yè)設計 論文 評審表 一 學學 號號 姓名姓名 專專 業(yè)業(yè) 班班 級級 題題 目目 計算機網絡連接監(jiān)控系統(tǒng)計算機網絡連接監(jiān)控系統(tǒng) 指指 導導 教教 師師 評評 語語 成績 百分制 成績 百分制 指導教師簽名 指導教師簽名 年年 月月 日日 評評 閱閱 教教 師師 評評 語語 成績 百分制 成績 百分制 評閱教師簽名 評閱教師簽名 年年 月月 日日 1 畢業(yè)設計 論文 評審表 二 畢業(yè)設計 論文 評審表 二 學學 號號 姓名姓名 專專 業(yè)業(yè) 班班 級級 答答 辯辯 資資 格格 審審 查查 專專業(yè)業(yè)答答辯辯委委員員會會主主任任簽簽字字 年年 月月 日日 專專 業(yè)業(yè) 答答 辯辯 委委 員員 會會 評評 語語 答答辯辯成成績績 百百分分制制 專專業(yè)業(yè)答答辯辯委委員員會會主主任任簽簽字字 總總評評成成績績 年年 月月 日日 計算機網絡連接監(jiān)控系統(tǒng) 學 生 指導教師 孫紅艷 I 摘摘 要要 近幾年來 計算機網絡系統(tǒng)的發(fā)展相當迅猛 計算機 網絡系統(tǒng)已成為人們日常工作和生活中不可缺少的重要的部分 為 了保證計算機網絡系統(tǒng)安全可靠工作 對計算機網絡系統(tǒng)進行自動 監(jiān)視和有機管理是極其必要的 本文利用 Windows API 函數(shù)實現(xiàn)了一種計算機網絡連接監(jiān)控系 統(tǒng) 系統(tǒng)分為三個主要部分 IP 監(jiān)控 網絡流量 IP 協(xié)議統(tǒng)計情況 IP 監(jiān)控模塊對本地 遠程 IP 及所使用端口進行監(jiān)控 從而發(fā)現(xiàn)可 疑的連接 通過調用 iplpapi dll 庫中的 GetTcpTable 函數(shù)實現(xiàn) 網 絡流量模塊可以查看到當前的發(fā)送 接收速度和累計的流量信息 通過調用 IP 助手庫函數(shù) 中 GetIfTable 函數(shù)實現(xiàn) IP 協(xié)議統(tǒng)計 情況模塊可以獲得 TCP IP UDP ICMP 的統(tǒng)計情況 通過調用 使用 IP 助手庫函數(shù) 的 GetIpStatistics 函數(shù) GetIcmpStatistics 函數(shù) GetTcpStatistics 函數(shù)以及 GetUdpStatistics 函數(shù)實現(xiàn) 本文對于該系統(tǒng)的設計過程進行了詳盡的介紹 并且分析和比 較該系統(tǒng)各功能模塊和總體性能 對其中涉及的技術問題提出了編 程思路和解決方法 關鍵詞 關鍵詞 網絡監(jiān)控 IP 監(jiān)視 網絡流量 信息統(tǒng)計 Windows API II Abstract In the last few years with the development of the network system the network system has become an important part in daily lives It is necessary to monitor network in order to ensure the network working safely and credible This thesis carried out a system of monitoring network using window API The system can be divided into three parts IP supervision Network discharge and IP agreement The IP supervision module can monitor local and remote IP and its usage port then the suspicious connection can be detected This function can be realized through making use of GetTcpTable in iplapapi dll database Network discharge module can examine the amount of information which is sending or receiving it can be realized through making use of GetIfTable in IP assistant The third module can be realized through making use of other functions in IP assistant This thesis introduces the process of designing and put forward the programming method and solving method through analyzing and comparing the function of these modules Keywords Network supervision IP surveillance Network discharge Information statistics Windows API III 目目 錄錄 引 言 1 第 1 章 概述 2 1 1 網絡監(jiān)控系統(tǒng) 2 1 2 網絡監(jiān)控系統(tǒng)的應用 3 1 3 本文所做工作 3 第 2 章 網絡協(xié)議及 API 函數(shù)介紹 4 2 1 簡介 INTERNET與 TCP IP 協(xié)議 4 2 1 1 Internet 基礎 4 2 1 2 TCP IP 協(xié)議 5 2 2 ICMP 協(xié)議 8 2 3 API 介紹及調用 9 2 3 1 API 分類 10 2 3 2 API 介紹及應用 10 第 3 章 設計方案與功能介紹 12 3 1 總體設計 12 3 2 各模塊設計及說明 13 第 4 章 各功能模塊的具體實現(xiàn) 17 4 1 監(jiān)視 IP 模塊 17 4 2 查看流量模塊 19 4 3 IP 協(xié)議統(tǒng)計情況模塊 20 第 5 章 程序運行分析 25 5 1 功能選擇界面 25 5 2 IP 監(jiān)視界面運行結果分析 25 5 3 查看流量界面運行結果分析 26 5 4 IP 協(xié)議統(tǒng)計情況界面運行結果分析 27 第 6 章 結論 28 致 謝 29 附 錄 計算機網絡連接監(jiān)控系統(tǒng)程序代碼 30 參 考 文 獻 76 1 引引 言言 為了保證計算機網絡系統(tǒng)安全可靠工作 對計算機網絡系統(tǒng)進 行自動監(jiān)視和有機管理是極其必要的 網絡監(jiān)控就是對網絡內到達 本地服務器的所有數(shù)據(jù)包進行截取和分析 掌握當前網絡總流量 同時可以根據(jù)不同的需要對特定端口或特定外部地址進行監(jiān)視 防 止非法入侵 以保障本地網絡系統(tǒng)的安全和穩(wěn)定 它的主要意義在 于實現(xiàn)了網絡監(jiān)控 隨著內部網絡的規(guī)模與容量的日漸擴大 保持 系統(tǒng)的正常運作將會變得越來越重要 網絡監(jiān)控能使系統(tǒng)及時地發(fā) 現(xiàn)網絡流量異常的現(xiàn)象 使服務器在發(fā)現(xiàn)非法入侵后能立即做出反 應 來保護自己的服務器不被破壞 以求獲得安全性的同時 提高網 絡性能 2 第第 1 1 章章 概述概述 近幾年來 由于互聯(lián)網絡的發(fā)展 整個世界經濟正在迅速地融 為一體 而整個國家猶如一部巨大的網絡機器 計算機網絡已經成 為國家的經濟基礎和命脈 計算機網絡在經濟和生活的各個領域正 在迅速普及 一句話 整個社會對網絡的依賴程度越來越大 眾多 的企業(yè) 各種組織 政府部門與機構都在組建和發(fā)展自己的網絡 并連接到 Internet 上 以充分利用網絡的信息和資源 網絡已經成 為社會和經濟發(fā)展強大動力 其地位越來越重要 伴隨著網絡的發(fā) 展 帶來了很多的問題 其中安全問題尤為突出 1 1 網絡監(jiān)控系統(tǒng)網絡監(jiān)控系統(tǒng) 為了保證計算機網絡系統(tǒng)安全可靠工作 對計算機網絡系統(tǒng)進 行自動監(jiān)視和有機管理是極其必要的 網絡監(jiān)控就是對網絡內到達 本地服務器的所有數(shù)據(jù)包進行截取和分析 掌握當前網絡總流量 同時可以根據(jù)不同的需要對特定端口或特定外部地址進行監(jiān)視 防 止非法入侵 以保障本地網絡系統(tǒng)的安全和穩(wěn)定 它的主要意義在 于實現(xiàn)了網絡監(jiān)控 隨著內部網絡的規(guī)模與容量的日漸擴大 保持 系統(tǒng)的正常運作將會變得越來越重要 網絡監(jiān)控能使系統(tǒng)及時地發(fā) 現(xiàn)網絡流量異常的現(xiàn)象 使服務器在發(fā)現(xiàn)非法入侵后能立即做出反 應 來保護自己的服務器不被破壞 以求獲得安全性的同時 提高網 絡性能 現(xiàn)在國際上比較有名的入侵檢測系統(tǒng)有 ISS 公司的 RealSecure Enterasys 公司的 Dragon 等 他們將基于主機和基于網 絡的入侵檢測技術基礎集成在一起 擴大了檢測的數(shù)據(jù)源 降低了 漏報率 并且對于檢測針對主機的攻擊效果比較好 但是這種方法 的實施難度特別大 還要考慮到網絡中不同計算機操作系統(tǒng)的差異 需要將數(shù)據(jù)格式進行轉換 以達到統(tǒng)一 這些產品系統(tǒng)性能相對比 3 較穩(wěn)定 特征知識庫更新速度比較快 國內公司生產的入侵檢測系 統(tǒng)也比較多 如上海復旦光華信息股份有限公司的光華 S Audit 網 絡入侵檢測與安全審計系統(tǒng) V3 0 常州遠東科技有限公司的 黑客 煞星 長沙天一銀河信息產業(yè)有限公司的天一獵鷹入侵檢測系統(tǒng) V1 0 上海三零衛(wèi)士信息安全有限公司的鷹眼網絡安全監(jiān)測儀 上海金諾網安的 KIDS Ver3 0 等 它們的體系結構大同小異 性能 相差不大 都能檢測到以下一些攻擊事件 如多數(shù)的掃描 嗅探 后門 病毒 拒絕服務 分布式拒絕服務 非授權訪問 欺騙等 由于它們大多是以誤用檢測的分析方法為主 因此有的漏報率相對 高一些 特征知識庫更新速度相對也要慢一些 1 2 網絡監(jiān)控系統(tǒng)的應用網絡監(jiān)控系統(tǒng)的應用 網絡監(jiān)控系統(tǒng)能應用在各個領域 例如 在網吧里 網管能利 用該系統(tǒng)對上網者進行監(jiān)控 知道上網者瀏覽過的網站或網頁 在 公安部門 網絡警察利用網絡監(jiān)控系統(tǒng)對整個網絡進行實時監(jiān)控 追蹤企圖利用網絡進行非法活動的罪犯 在軍隊里 可以利用該系 統(tǒng)進行電子戰(zhàn) 能夠及時發(fā)現(xiàn)敵方的準確位置 1 3 本文所做工作本文所做工作 本次畢業(yè)設計主要實現(xiàn)了一個小型的網絡監(jiān)控系統(tǒng) 該系統(tǒng)由 三部分組成 IP 監(jiān)視 網絡流量監(jiān)控 IP 協(xié)議統(tǒng)計情況 論文組織如下 第一章為引言部分 第二章介紹網絡監(jiān)控的基 本原理 第三章是網絡監(jiān)控系統(tǒng)的設計方案和功能介紹 第四章是 各功能模塊的具體實現(xiàn) 第五章是程序運行分析 最后是結論和致 謝 4 第第 2 2 章章 網絡協(xié)議及網絡協(xié)議及 APIAPI 函數(shù)介紹函數(shù)介紹 實現(xiàn)網絡監(jiān)控 必須掌握 Internet 和網絡協(xié)議的基礎知識 本 系統(tǒng)用 VB 作為開發(fā)工具 Visual Basic 不僅僅是一個編譯器 它 是一個全面的應用程序開發(fā)環(huán)境 使用 Visual Basic 語言進行程序 設計 雖然可以使用其本身所提供的各個控件 函數(shù) 語句等來完 成你所需要的功能 但是在系統(tǒng)操作 應用 控制方面 簡單地使 用這些基本功能是不足以達到需求的 因此可以使用 Windows API 來完成所需要的功能 2 1 簡介簡介 Internet 與與 TCP IP 協(xié)議協(xié)議 2 1 1 Internet 基礎基礎 Internet 的中文標準譯名為 因特網 或 國際互聯(lián)網 值得 注意的是 Internet 與 internet 是不同的兩個概念 Internet 專指全 球最大的 開放的 使用 TCP IP 協(xié)議的 由眾多網絡互聯(lián)而成的 網絡集合體 而 internet 是 interconnect network 的縮寫 是泛指性 的 互聯(lián)網 靈活多樣的入網方式是 Internet 獲得高速發(fā)展的重要原因 任 何計算機只要采用 TCP IP 協(xié)議與 Internet 中的任何一臺主機通信就 可以成為 Internet 的一部分 Internet 所采用的 TCP IP 協(xié)議族成功 地解決了不同硬件平臺 不同網絡產品和不同操作系統(tǒng)之間的兼容 性問題 標志著網絡技術的一個重大進步 因此 無論是大型主機 小型機 還是微機或工作站都可以運行 TCP IP 協(xié)議并與 Internet 進 行通信 目前 TCP IP 已經成為事實上的國際標準 Internet 采用了目前在分布式網絡中最為流行的客戶 服務程序 Client Server 模式 大大增加了網絡信息服務的靈活性 用戶 5 可通過安裝在自己主機上的客戶程序發(fā)出請求 與裝有相應服務程 序的主機進行通信 凡是裝有服務程序的主機均可對其他主機提供 信息服務 當自己的主機沒有所需要的客戶程序時 可以通過遠程 登錄 TELNET 連接到公共客戶程序 然后再向裝有服務程序的 主機發(fā)出服務請求 Internet 把網絡技術 多媒體技術和超文本技術融為一體 體 現(xiàn)了當代多種信息技術互相融合的發(fā)展趨勢 豐富的信息服務功能 和友好的用戶接口使 Internet 可以做到雅俗共賞 除了 TCP IP 協(xié)議 所提供的應用程序外 還有許多高級的信息服務方式和友好的用戶 接口 如 Gopher Archie WAIS 和 WWW 等 這種強大的網絡信 息服務手段是其他網絡難以比擬的 作為一個互聯(lián)網絡 歸結起來 Internet 具有以下的特點 對用戶隱蔽互聯(lián)網絡的底層結構 這意味著 Internet 用戶和應 用程序不必了解硬件連接的細節(jié) 能通過 與通信的雙方計算機之一或兩者無直接物理連接的 中間網絡收發(fā)數(shù)據(jù) Internet 上的所有計算機共享一個全局的機器標識符 名字或 地址 集合 用戶界面獨立于網絡 即建立通信和傳送數(shù)據(jù)的一系列操作與 低層網絡技術和通信的計算機無關 以上的四點實際上就是一個通用服務的概念 因此 Internet 就 是一個通用服務 2 1 2 TCP IP 協(xié)議協(xié)議 TCP IP Transmission Control Protocol Internet Protocol 傳輸控 制協(xié)議 網間網協(xié)議 是目前世界上應用最為廣泛的協(xié)議 它的流行 與 Internet 的迅猛發(fā)展密切相關 TCP IP 最初是為互聯(lián)網的原型 ARPANET 所設計的 目的是提供一整套方便實用 能應用于多種 網絡上的協(xié)議 事實證明 TCP IP 做到了這一點 它使網絡互聯(lián)變 得容易起來 并且使越來越多的網絡加入其中 成為 Internet 的事 6 實標準 TCP IP 協(xié)議是一組不同層次上的多個協(xié)議的組合 TCP IP 通 常被認為是一個四層協(xié)議系統(tǒng) 每一層負責不同的功能 1 應用層 所有用戶所面向的應用程序的統(tǒng)稱 TCP IP 協(xié)議族 在這一層面有著很多協(xié)議來支持不同的應用 許多大家所熟悉的基 于 Internet 的應用的實現(xiàn)就離不開這些協(xié)議 如我們進行萬維網 WWW 訪問用到了 HTTP 協(xié)議 文件傳輸用 FTP 協(xié)議 電子郵 件發(fā)送用 SMTP 域名的解析用 DNS 協(xié)議 遠程登錄用 Telnet 協(xié) 議等等 都是屬于 TCP IP 應用層的 就用戶而言 看到的是由一 個個軟件所構筑的大多為圖形化的操作界面 而實際后臺運行的便 是上述協(xié)議 應用層的每種服務都有一個唯一的端口號 例如 Telnet 的端 口號為 23 當 TCP 或 UDP 由 IP 收到數(shù)據(jù)后 會根據(jù)標頭的端口 號將數(shù)據(jù)轉交給對應的程序處理 需要注意的是 TCP 和 UDP 的 應用程序可分配相同的端口號 必須配合端口號和傳輸協(xié)議種類才 可以決定數(shù)據(jù)對應的程序 知名的端口號 FTPTELNETSMTPDNSTFTPSNMPNAME 212325536916142 端口號 0 到 255 已經保留給著名的服務 256 到 1023 則分配給 UNIX 特有的服務 2 傳輸層 這一層的的功能主要是提供應用程序間的通信 TCP IP 協(xié)議族在這一層的協(xié)議有 TCP 和 UDP 1 TCP 提供 IP 環(huán)境下的數(shù)據(jù)可靠傳輸 它提供的服務包括數(shù)據(jù) 流傳送 可靠性 有效流控 全雙工操作和多路復用 通過面向連 接 端到端和可靠的數(shù)據(jù)包發(fā)送 通俗說 它是事先為所發(fā)送的數(shù) 據(jù)開辟出連接好的通道 然后再進行數(shù)據(jù)發(fā)送 而 UDP 則不為 IP 提供可靠性 流控或差錯恢復功能 一般來說 TCP 對應的是可靠 性要求高的應用 而 UDP 對應的則是可靠性要求低 傳輸經濟的 7 應用 TCP 支持的應用協(xié)議主要有 Telnet FTP SMTP 等 2 UDP 支持的應用層協(xié)議主要有 NFS 網絡文件系統(tǒng) SNMP 簡單網絡管理協(xié)議 DNS 主域名稱系統(tǒng) TFTP 通用 文件傳輸協(xié)議 等 3 網絡層 TCP IP 協(xié)議族中非常關鍵的一層 主要定義了 IP 地址格式 從而能夠使得不同應用類型的數(shù)據(jù)在 Internet 上暢通地 傳輸 IP 協(xié)議就是一個網絡層協(xié)議 4 鏈路層 這是 TCP IP 軟件的最低層 負責接收 IP 數(shù)據(jù)包并通 過網絡發(fā)送之 或者從網絡上接收物理幀 抽出 IP 數(shù)據(jù)報 交給 IP 層 TCP IP 協(xié)議族提供網間連接的完善功能 包括 IP 數(shù)據(jù)報規(guī) 定互連網絡范圍內的 IP 地址格式 Internet 上 為了實現(xiàn)連接到互聯(lián)網上的結點之間的通信 必 須為每個結點 入網的計算機 分配一個地址 并且應當保證這個 地址是全網唯一的 這便是 IP 地址 目前的 IP 地址由 32 個二進制位表示 每 8 位二進制數(shù)為一個 整數(shù) 中間由小數(shù)點間隔 如 159 226 41 98 整個 IP 地址空間有 4 組 8 位二進制數(shù) 由表示主機所在的網絡的地址以及主機在該網 絡中的標識共同組成 為了便于尋址和層次化的構造網絡 IP 地址被分為 A B C D E 五類 商業(yè)應用中只用到 A B C 三類 8 地址 類型 引導位 網絡位 網絡位 地址范圍 地址結構主機位可 用 地址數(shù) A 類01 126網 主 主 主 16777214 B 類10128 191網 網 主 主 65534 C 類110192 223網 網 網 主 254 D 類1110224 239組播地址 E 類1111240 研究用地址 2 2 ICMP 協(xié)議協(xié)議 Internet 控制信息協(xié)議 ICMP 是 IP 組的一個整合部分 通 過 IP 包傳送的 ICMP 信息主要用于涉及網絡操作或錯誤操作的不 可達信息 ICMP 包發(fā)送是不可靠的 所以主機不能依靠接收 ICMP 包解決任何網絡問題 ICMP 的主要功能如下 通告網絡錯誤 比如 某臺主機或整個網絡由于某些故障不可 達 如果有指向某個端口號的 TCP 或 UDP 包沒有指明接受端 這 也由 ICMP 報告 通告網絡擁塞 當路由器緩存太多包 由于傳輸速度無法達到 它們的接收速度 將會生成 ICMP 源結束 信息 對于發(fā)送者 這些信息將會導致傳輸速度降低 當然 更多的 ICMP 源結束信息 的生成也將引起更多的網絡擁塞 所以使用起來較為保守 協(xié)助解決故障 ICMP 支持 Echo 功能 即在兩個主機間一個往 9 返路徑上發(fā)送一個包 Ping 是一種基于這種特性的通用網絡管理工 具 它將傳輸一系列的包 測量平均往返次數(shù)并計算丟失百分比 通告超時 如果一個 IP 包的 TTL 降低到零 路由器就會丟棄 此包 這時會生成一個 ICMP 包通告這一事實 TraceRoute 是一 個工具 它通過發(fā)送小 TTL 值的包及監(jiān)視 ICMP 超時通告可以顯 示網絡路由 協(xié)議結構 8 16 32bit TypeCodeChecksum IdentifierSequence number Address mask Type 錯誤消息或信息消息 錯誤消息可能是不可獲得目標 文件 數(shù)據(jù)包太大 超時 參數(shù)問題等 可能的信息消息有 Echo Request Echo Reply Group Membership Query Group Membership Report Group Membership Reduction Code 每種消息類型具有多種不同代碼 不可獲得目標文件 正式這樣一個例子 即其中可能的消息是 目標文件沒有路由 禁止與目標文件的通信 非鄰居 不可獲得地址 不可獲得端 口 具體細節(jié)請參照相關標準 Checksum 計算校驗和時 Checksum 字段設置為 0 Identifier 幫助匹配 Requests Replies 的標識符 值可能為 0 Sequence Number 幫助匹配 Requests Replies 的序列號 值 可能為 0 10 Address Mask 32 位掩碼地址 2 3 API 介紹及調用介紹及調用 Windows 這個多作業(yè)系統(tǒng)除了協(xié)調應用程式的執(zhí)行 分配內 存 管理系統(tǒng)資源之外 它同時也是一個很大的服務中心 調用 這個服務中心的各種服務 每一種服務就是一個函數(shù) 可以幫應用 程式達到開啟視窗 描繪圖形 使用周邊設備 等目的 由于這 些函數(shù)服務的對象是應用程式 Application 所以便稱之為 Application Programming Interface 簡稱 API 函數(shù) WIN32 API 也 就是 Microsoft Windows 32 位平臺的應用程序編程接口 2 3 1 API 分類分類 凡是在 Windows 工作環(huán)境底下執(zhí)行的應用程式 都可以調 用 Windows API 按照通常的劃分標準 Windows API 函數(shù)分為七 大類 1 窗口管理類 這類 API 函數(shù)向應用程序提供了一些創(chuàng)建和管理 用戶界面的方法 我們可以使用它們來做出程序的界面 2 窗口通用控制類 系統(tǒng) SHELL 提供了一些控制 使用這些控 制可以使窗口具有與眾不同的外觀 通用控制是由通用控制庫 COMCTL32 DLL 提供的 3 SHELL 特性類 應用程序可以使用它們來增強系統(tǒng) SHELL 各 方面的功能 4 圖形設備接口 GDI 提供繪圖 圖形處理 使用顯示設備等 一系列的 API 函數(shù) 5 系統(tǒng)服務類 為計算機提供了訪問計算機資源以及底層操作的 手段 6 國際特性類 有助于我們編寫國際化的應用程序 提供 Unicode 字符集和多語種支持 11 7 網絡服務類 允許網絡上的不同計算機之間的不同應用程序之 間進行通訊 用于在各計算機上創(chuàng)建和管理共享資源的連接 2 3 2 API 介紹及應用介紹及應用 API 說到底就是一系列的底層函數(shù) 是系統(tǒng)提供給用戶用于進 入操作系統(tǒng)核心 進行高級編程的途徑 通過在 Visual Basic 應用 程序中聲明外部過程就能夠訪問 Windows API 以及其它的外部 DLLs 在聲明了過程之后 調用它的方法與調用 Visual Basic 自己 的過程相同 要聲明一個 DLL 過程 需要在代碼窗口的 聲明 部分增加一個 Declare 語句 如果該過程返回一個值 應將其聲明 為 Function 例如 Declare Function publicname Lib libname Alias alias ByVal variable As type ByVal variable As type As Type 如果過程沒有返回值 可將其聲明為 Sub 缺省情況下 在標準模塊中聲明的 DLL 過程 可以在應用程 序的任何地方調用它 在其他類型的模塊中定義的 DLL 過程是模 塊私有的 必須在它們前面 加上 Private 關鍵字 以示區(qū)分 特別 值得注意的是 在 32 位的 Visual Basic 中過程名是區(qū)分大小寫的 Declare 語句中的 Lib 子句用來告訴 Visual Basic 如何找到包含 該過程的 dll 文件 如果引用的過程屬于 Windows 核心庫 User32 Kernel32 或 GDI32 則可以不包含文件擴展名 VB6 專業(yè)版在 VB 目錄的 Winapi 子目錄下 用幾個文件提供 了關于 API 的信息 Win32api txt 文件中包含了 32 位 Windows API 函數(shù)中用到的函數(shù)和類型的結構聲明以及全局常量的值 用戶可以 用 VB 本身帶的外接程序 API 瀏覽器 來方便地使用 Win32api Txt 如下所示 點擊菜單文件項的 加載文本文件 從 VB 目 錄下的 WINAPI 目錄中選擇 WIN32API TXT 就可以看 WINDOWS 95 系統(tǒng)的 API 函數(shù)的聲明 常數(shù)定義和數(shù)據(jù)類型了 例如 我們打算 查看函數(shù) InverRect 的聲明 首先 點擊 搜索 按鈕 輸入字符 12 串 InverRect 在 可選項 欄中 蘭色的亮度條將移 動到 InverRect 項上 再點按 添加 按鈕 在 選定項 中就出現(xiàn) InverRect 在 Visual Basic 中的 聲明了 接下來自然是點按 復制 按鈕 然后將窗 口切換到 Visual Basic 開發(fā)環(huán)境中 在需 要聲明 API 函數(shù)的地方 Ctrl V 粘貼 即可 第第 3 章章 設計方案與功能介紹設計方案與功能介紹 3 1 總體設計總體設計 網絡監(jiān)控系統(tǒng)主要功能是監(jiān)視連接到本機的所有遠程計算機 向用戶顯示進出流量 進出 IP 和端口 應用程序 訪問動作以及 備注的一些附加信息 為了使本系統(tǒng)結構清晰 便于調試 易于實現(xiàn) 將整個系統(tǒng)按 功能劃分為兩個主要功能模塊 在每個主要功能模塊內部又按功能 細劃分為若干個子功能模塊 然后按 自頂向下 逐步求精 的方 法逐一實現(xiàn) 完成全部設計 網絡監(jiān)控系統(tǒng)總體劃分為三大功能分別是 1 監(jiān)視 IP 功能 監(jiān)聽到達本地服務器的外部地址和所使用的端 口 能及時發(fā)現(xiàn)可疑的 IP 地址 2 查看網絡流量功能 對本機流入和流出的數(shù)據(jù)量進行實時的 監(jiān)控 并統(tǒng)計總的流進 流出量 3 IP 協(xié)議統(tǒng)計情況功能 在本地計算機上對 IP 協(xié)議統(tǒng)計情況行 管理和查詢 系統(tǒng)的主流程框圖如圖所示 13 1 監(jiān)視 IP 監(jiān)聽到達本地服務器的外部地址和所使用的端 口能及時發(fā)現(xiàn)可疑的 IP 地址 2 查看流量 對本機流入和流出的數(shù)據(jù)量進行實時的監(jiān) 控 并統(tǒng)計總的流進 流出量 3 IP 協(xié)議統(tǒng)計情況 對本機的 IP 協(xié)議統(tǒng)計情況進行查詢和管 理 開始 歡迎界面 功能選擇 監(jiān)視 IP查看流量IP 協(xié)議統(tǒng)計情況 結束 14 3 2 各模塊設計及說明各模塊設計及說明 監(jiān)視 IP 設計流程圖 15 開始 調用 inet ntoa 函數(shù)接收 Internet 地 址 調用 lstrcpyA 將變量內容轉換為字符串 設備是否使用 TCP 協(xié) 議 Lngrequired 0 將緩沖區(qū)中開始的四個字節(jié)數(shù)據(jù)進行處理 顯示建立連接本地端口與遠程端口 顯示 TCP 各種狀態(tài) 將數(shù)據(jù)送到緩沖區(qū) 調用 ntohs 函數(shù)轉換字節(jié)順序 顯示本地 IP 和遠程 IP 結 束 說明 此模塊主要實現(xiàn)監(jiān)聽到達本地服務器的外部地址和所使用的 端口 N Y 16 在獲取遠程計算機 IP 地址前 先確定設備是否使用的是 TCP 通信協(xié)議 處理接收到的各種 TCP 信息 并顯示出來 調用 iplpapi dll 庫中的 GetTcpTable 函數(shù) 它的作用是返回當前系統(tǒng) 中全部有效的 TCP 連接 GetTcpTable 函數(shù)取回的信息是以一個 MIB TCPROW 結構的數(shù)組出現(xiàn)的 這個結構中的包含著主機 IP 地址的成員 用長整型的數(shù)據(jù)形式存儲著一個地址 這個地址的 每一部分是存儲在四個字節(jié)長整型值中的一個字節(jié)中 查看流量 設計流程圖 開 始 調用 IP 助手函數(shù)庫 有關吞吐量的函數(shù) GetIfTable 函數(shù)指向的緩沖區(qū)結構 收到的字節(jié)數(shù) 發(fā)送的字節(jié)數(shù) 結束 說明 此模塊實現(xiàn)了對本機流入和流出的數(shù)據(jù)量進行實時的監(jiān)控 使用 IP 助手庫函數(shù) iphlpapi dll 獲取網絡流量 IP 助手庫函數(shù) 中有關吞吐量的函數(shù) GetIfTable 可獲取當 前所有的網絡連接情況 其中包括使用網卡的局域網連接 以及 17 使用 ISDN 或調制解調器的撥號網絡連接 可獲取的信息包括 連接速度 界面類型 操作狀態(tài) 當前總共收到和發(fā)送的字節(jié)數(shù) 等等 其中 總共收到和發(fā)送的字節(jié)數(shù) 等信息完全是累計的 也 就是說 這些信息不受網絡連接斷開的影響 如撥號網絡 能完 整記錄各網絡全天的吞吐總量 IP 協(xié)議統(tǒng)計情況 信 息 統(tǒng) 計 TCP 信息統(tǒng)計 IP 信息統(tǒng)計 UDP 信息統(tǒng)計 ICMP 信息統(tǒng)計 說明 此模塊主要實現(xiàn)的是可在自己的計算機上對 IP 協(xié)議統(tǒng)計情況 行管理和查詢 使用 IP 助手庫函數(shù) iphlpapi dll 獲得 IP 協(xié)議統(tǒng)計情況 的四個函數(shù)是 GetIpStatistics GetIcmpStatistics GetTcpStatistics 以及 GetUdpStatistics 18 第第 4 章章 各功能模塊的具體實現(xiàn)各功能模塊的具體實現(xiàn) 本系統(tǒng)分為三大功能模塊 監(jiān)視 IP 模塊 查看流量模塊和 IP 協(xié)議統(tǒng)計情況模塊 以下對各功能模塊的具體實現(xiàn)進行詳細的介紹 4 1 監(jiān)視監(jiān)視 IP 模塊模塊 此模塊用來追蹤本機使用 TCP IP 協(xié)議的連接狀態(tài) 這些狀態(tài) 例如 本機 IP 使用某一連接端口 連接到遠程設備的 IP 以及連接 端口的狀態(tài) 實現(xiàn)的算法如下 第一步 在獲取遠程計算機 IP 地址前 首先要先確定設備是 否使用的是 TCP 通信協(xié)議 調用 iplpapi dll 庫中的 GetTcpTable 函數(shù) 它的作用是返回當前系統(tǒng)中全部有效的 TCP 連接 而其中 的自定義變量 LngRequired 參數(shù)是屬于引用地址類型 當調用 GetTcpTable 函數(shù)時會自動填入 LngRequired 的數(shù)值 如果小于等 于 0 表示設備沒有使用 TCP 協(xié)議 第二步 調用 GetTcpTable API 函數(shù)取回的信息是以一個 MIB TCPROW 結構的數(shù)組出現(xiàn)的 Type MIB TCPROW dwState As Long TCP 連接狀態(tài) dwLocalAddr As Long 為連接指定一個本地 IP 地址 dwLocalPort As Long 為連接指定一個本地端口 dwRemoteAddr As Long 為連接指定遠程 IP 地址 dwRemotePort As Long 為連接指定遠程端口 End Type 19 其中 dwState 各狀態(tài)說明如下 MIB TCP STATE CLOSED 關閉 狀態(tài) MIB TCP STATE CLOSING 正在關閉 狀態(tài) MIB TCP STATE CLOSE WAIT 關閉等待 狀態(tài) MIB TCP STATE DELETE TCB 刪除 狀態(tài) MIB TCP STATE ESTAB 已建立 狀態(tài) MIB TCP STATE FIN WAIT 1 FINWAIT 1 狀態(tài) MIB TCP STATE FIN WAIT 2 FINWAIT 2 狀態(tài) MIB TCP STATE LAST ACK 最后一次確認 狀 態(tài) MIB TCP STATE LISTEN 正在監(jiān)聽 狀態(tài) MIB TCP STATE SYN RCVD 同步接收 狀態(tài) MIB TCP STATE SYN SENT 同步發(fā)送 狀態(tài) MIB TCP STATE TIME WAIT 時間等待 狀態(tài) MIB TCPROW 結構中的包含著主機 IP 地址的成員 用長整型 的數(shù)據(jù)形式存儲著一個地址 這個地址的每一部分是存儲在四個字 節(jié)長整型值中的一個字節(jié)中 第三步 調用 wsock32 dll 庫中的 inet ntoa API 函數(shù) 以長整 型值的形式接收 Internet 地址和返回一個通過點符號形式包含著一 個 IP 地址的字符指針 將 inet ntoa API 函數(shù)返回的一個通過點符 號形式包含著一個 IP 地址的字符指針 放到 MIB TCPROW 應用 程序緩沖區(qū)中 GetTcpTable API 函數(shù)中的 IpTCPTable 參數(shù) 它是 一個指針 指向這個緩沖區(qū) 取出接收到的四個字節(jié) TCP 信息 20 送到 TCPROW 變量中 第四步 在網絡協(xié)議中處理的字節(jié)順序和 Intel 處理器的主機 處理的字節(jié)順序是不同的 當通過網線發(fā)送數(shù)值變量時 對網絡上 的第一個字節(jié) 在 Intel 計算機卻為最后一個字節(jié) MIB TCPROW 結構的形式返回的端口號是網絡字節(jié)順序的 所以需要把它們轉換 成主機字節(jié)順序來獲取真正的值 這就要用到 wsock32 dll 庫中的 ntohs API 函數(shù) 它將 4 字節(jié)數(shù)據(jù)類型從網絡字節(jié)順序轉換到主機 字節(jié)順序 第五步 調用 kernel32 函數(shù)庫中的 lstrcpyA 因為有時 API 函 數(shù)返回的字符指針不能在 VB 字符串數(shù)據(jù)類型中直接取出 Win32API 提供了 C 函數(shù) lstrcpy 它允許我們通過字符串的指針將 字符串復制到另一個變量中 4 2 查看流量模塊查看流量模塊 此模塊用來對本機流入和流出的數(shù)據(jù)量進行實時的監(jiān)控 并統(tǒng) 計總的流進 流出量 具體的實現(xiàn)步驟如下 第一步用 IP 助手庫函數(shù) 可獲取當前所有的網絡連接情況 其中包括使用網卡的局域網連接 以及使用 ISDN 或調制解調器的 撥號網絡連接 可獲取的信息包括 連接速度 界面類型 操作狀 態(tài) 當前總共收到和發(fā)送的字節(jié)數(shù) 等等 其中 總共收到和發(fā)送 的字節(jié)數(shù) 等信息完全是累計的 也就是說 這些信息不受網絡連 接斷開的影響 如撥號網絡 能完整記錄各網絡全天的吞吐總量 第二步 使用 IP 助手庫函數(shù) 中有關吞吐量的函數(shù) GetIfTable 等 其定義為 Private Declare Function GetIfTable Lib iphlpapi ByRef pIfTable As Any ByRef pdwSize As Long ByVal bOrder As Long As Long 第三步 GetIfTable 函數(shù)的第一個參數(shù)指向一個緩沖區(qū) 函數(shù)執(zhí) 21 行后該緩沖區(qū)內被填入各網絡連接的最新數(shù)據(jù) 緩沖區(qū)的結構是 網絡連接總數(shù) 網絡連接 結構數(shù)據(jù) 網絡連接 結構數(shù)據(jù) 其中 網絡連接總數(shù) 占 4 個字節(jié) 每個 網絡連接數(shù)據(jù) 的結構 為 Private Type MIB IFROW wszName 0 To 511 As Byte dwIndex As Long 編號 dwType As Long 界面類型 dwMtu As Long 最大傳輸單元 dwSpeed As Long 界面速度 dwPhysAddrLen As Long 物理地址部分有效長度 bPhysAddr 0 To 7 As Byte 物理地址 dwAdminStatus As Long 管理狀態(tài) dwOperStatus As Long 操作狀態(tài) dwLastChange As Long 操作狀態(tài)最近更新時間 dwInOctets As Long 總共收到 字節(jié) dwInUcastPkts As Long 總共收到 unicast 包 dwInNUcastPkts As Long 總共收到 non unicast 包 dwInDiscards As Long 丟棄包總數(shù) 收到 dwInErrors As Long 出錯包總數(shù) 收到 dwInUnknownProtos As Long 其它包總數(shù) 收到 dwOutOctets As Long 總共發(fā)送 字節(jié) dwOutUcastPkts As Long 總共發(fā)送 unicast 包 dwOutNUcastPkts As Long 總共發(fā)送 non unicast 包 dwOutDiscards As Long 丟棄包總數(shù) 發(fā)送 dwOutErrors As Long 出錯包總數(shù) 發(fā)送 dwOutQLen As Long 發(fā)送隊列長度 dwDescrLen As Long 界面描述部分有效長度 bDescr 0 To 255 As Byte 界面描述 End Type 22 第四步 將 網絡連接數(shù)據(jù) 的結構中有關進出流量的信息顯 示出來 4 3 IP 協(xié)議統(tǒng)計情況模塊協(xié)議統(tǒng)計情況模塊 此模塊的功能是對在本地計算機上對 IP 協(xié)議統(tǒng)計情況行管理 和查詢 用于獲得 IP 協(xié)議統(tǒng)計情況的四個函數(shù)是 GetIpStatistics GetIcmpStatistics GetTcpStatistics 以及 GetUdpStatistics 具體 實現(xiàn)步驟如下 第一步 利用第一個統(tǒng)計函數(shù) GetIpStatistics 可獲得當前計 算機上的 IP 統(tǒng)計情況 它的定義如下 GetIpStatistics MIB IPSTATS IpStats IpStats 參數(shù)是一個指針 指向 MIB IPSTATA 結構 這個結構 接收你的計算機當前的 IP 統(tǒng)計情況 MIB IPSTATS 結構的格式如 下 Type def struct MIB IPSTATS dwForwarding As Long 說明你的計算機上是啟用 還是禁 止轉發(fā) IP 包 dwDefaultTTL As Long 為你的計算機所發(fā)出的數(shù)據(jù)報指定 最初的生存期 TTL 的值 dwInReceives As Type 說明已收到多少數(shù)據(jù)報 dwInHdrErrors As Long 說明已收到多少報頭有誤的數(shù)據(jù)報 dwInAddrErrors As Long 說明已收到多少地址有誤的數(shù)據(jù)報 dwForwDatagrams As Long 說明已轉發(fā)多少數(shù)據(jù)報 dwInUnknownProtos As Long 說明已收到多少協(xié)議不明的數(shù)據(jù)報 23 dwInDiscards As Long 說明已收到多少已丟棄的數(shù)據(jù)報 dwInDelivers As Long 說明已收到多少已投遞的數(shù)據(jù)報 dwOutRequests As Long 說明 IP 請求傳輸多少數(shù)據(jù)報 dwRoutingDiscards As Long 說明已丟棄的外出數(shù)據(jù)報有多少 dwOutDiscards As Long 說明丟棄的傳輸數(shù)據(jù)報有多少 dwOutNoRoutes As Long 說明沒有路由目標的數(shù)據(jù)報有多少 dwReasmTimeout As Long 說明分段數(shù)據(jù)報完全到達的最長間 dwReasmReqds As Long 說明需要重組的數(shù)據(jù)報有多少 dwReasmOks As Long 說明已成功重組的數(shù)據(jù)報有多少 dwReasmFails As Long 說明不能進行重組分段的數(shù)據(jù)報有 多少 dwFragOks As Long 說明已成功分段的數(shù)據(jù)報有多少 dwFragFails As Long 說明不能進行分段的數(shù)據(jù)報有多少 dwFragCreates As Long 說明可被分段的數(shù)據(jù)報有多少 dwNumIf As Long 說明你的計算機上可用的 IP 接口有 多少 dwNumAddr As Long 說明你的計算機上標識的 IP 地址有 多少 dwNumRoutes As Long 說明路由表中可用的路由有多少 第二步 利用第二個統(tǒng)計函數(shù) GetIcmpStatistics 用于獲得 互聯(lián)網控制協(xié)議 ICMP 統(tǒng)計情況 它的定義如下 GetIcmpStatistics MIB ICMP IpStats IpStats 參數(shù)是一個指針 指向 MIB ICMP 結構 這個結構接 收你的計算機上當前的 ICMP 統(tǒng)計情況 MIB ICMP 結構的格式如 下 Typedef struct MIB ICMP 24 MIBICMPINFO stats MIB ICMP PMIB ICMP 一眼可見 這個 MIB ICMP 結構中另包含一個 MIBICMPINFO 結構 后者的格式如下 typedef struct MIBICMPINFO MIBICMPSTATS icmpInStats MIBICMPSTATS icmpOutStats MIBICMPINFO MIBICMPINFO 結構通過 MIBICMPSTATS 結構接收接入或外 出的 ICMP 信息 icmpInStats 參數(shù)接收接入數(shù)據(jù) 而 icmpOutStats 參數(shù)則接收外出數(shù)據(jù) MIBICMPSTATS 結構的格式如下 Typedef struct MIBICMPSTATS dwMsgs As Long 說明已收發(fā)多少消息 dwErrors As Long 說明已收發(fā)多少錯誤 dwDestUnreachs As Long 說明已收發(fā)多少 目標不可 達 消息 dwTimeExcds As Long 說明已收發(fā)多少 目標不可 抵達 消息 dwParmProbs As Long 說明已收發(fā)多少 目標不可 抵達 消息 dwSrcQuenchs As Long 說明已收發(fā)多少源結束消息 dwRedirects As Long 說明已收發(fā)多少重定向消息 dwEchos As Long 說明已收發(fā)多少 ICMP 響應 應答 dwEchoReps As Long 說明已收發(fā)多少時間戳請求 dwTimestamps As Long 說明已收發(fā)多少時間戳請求 25 dwTimestampReps As Long 說明已收發(fā)多少時間戳響應 dwAddrMasks As Long 說明已收發(fā)多少地址掩碼 dwAddrMaskReps As Long 說明已收發(fā)多少地址掩碼響 應 第三步 用于獲得IP 統(tǒng)計情況的第三個統(tǒng)計函數(shù)是 GetTcpStatistcs 它的定義如下 DWORD GetTcpStatistics PMIB TCPSTATS IpSTATS IpStats 參數(shù)是一個指針 指向 MIB TCPSTATS 結構 這個結 構接收你的計算機當前的 IP 統(tǒng)計 MIB TCPSTATS 結構的格式如 下 Typedefstruct MIB TCPSTATS dwRtoAlgorithm As Long 說明即將采用哪種重傳輸算法 有效值 包括 MIB TCP RTO CONSTANT MIB TC P RTO RSRE MIB TCP RTO VANJ 以及針對其他類型的 MIB TCP RTO OTHER dwRtoMin As Long 說明重傳輸超時的最小值 以毫秒計 dwRtoMax As Long 說明重傳輸超時的最大值 以毫秒計 dwMaxConn As Long 說明最多能接受多少連接 dwActiveOpens As Long 說明你的計算機向服務器發(fā)起了多少次 連接 dwPassiveOpens As Long 說明你的計算機監(jiān)聽了多少次客戶機出 的連接 dwAttemptFails As Long 說明嘗試連接失敗的次數(shù)是多少 dwEstabResets A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司文體活動月策劃方案
- 公司著裝大賽策劃方案
- 公司新年嘉年華活動方案
- 2025年職業(yè)健康安全管理師考試試卷及答案
- 2025年新能源與可再生能源知識考核考試卷及答案
- 2025年數(shù)字信號處理技術考試卷及答案
- 2025年天文學與空間科學考試題及答案
- 2025年人機交互設計師職業(yè)資格考試試題及答案
- 2025年企業(yè)管理咨詢師職業(yè)資格考試試卷及答案
- 2025年交通工程與智能交通管理的專業(yè)知識考試試卷及答案
- 國開《學前兒童語言教育活動指導》形考1-4試題及答案
- 海康2023綜合安防工程師認證試題答案HCA
- 濁度儀使用說明書
- GB/T 14404-2011剪板機精度
- GB/T 14294-1993組合式空調機組
- GA 1517-2018金銀珠寶營業(yè)場所安全防范要求
- 提高痰留取成功率PDCA課件
- 組合導航與融合導航解析課件
- 伊金霍洛旗事業(yè)編招聘考試《行測》歷年真題匯總及答案解析精選V
- 深基坑支護工程驗收表
- 顱腦CT影像課件
評論
0/150
提交評論