版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 網(wǎng) 卡 流 量 監(jiān) 控</p><p><b> ——畢業(yè)設(shè)計(jì)說明書</b></p><p> 系 部: </p><p> 學(xué)生姓名: </p><p> 專業(yè)班級: </p><p> 學(xué) 號:
2、 </p><p> 指導(dǎo)教師: </p><p><b> 年 月 日</b></p><p> 網(wǎng) 卡 流 量 監(jiān) 控</p><p><b> 摘 要</b></p><p> 隨著社會(huì)的發(fā)展,互聯(lián)網(wǎng)已成為我們生活中不可缺少的一部分,而網(wǎng)卡
3、在其中起著重要的作用,它是個(gè)人用戶與互聯(lián)網(wǎng)溝通的橋梁。通過對網(wǎng)卡流量的監(jiān)控,使用相應(yīng)的軟件對流量出入的監(jiān)視,清楚的知道流量的狀態(tài),從而不管在管理方面還是在安全方面,都會(huì)對網(wǎng)絡(luò)管理人員有很大的幫助。本文介紹通過在.net開發(fā)平臺(tái)上開發(fā)一個(gè)簡單的網(wǎng)卡流量監(jiān)控系統(tǒng)的過程,了解針對網(wǎng)卡監(jiān)控的功能實(shí)現(xiàn),掌握相關(guān)開發(fā)技術(shù),同時(shí)利用軟件工程的相關(guān)理論知識,了解軟件開發(fā)的方法與步驟。</p><p> 首先,簡單介紹下幾款帶有
4、監(jiān)控功能的軟件,比360安全衛(wèi)士等,然后了解這些軟件的功能;其次選擇在微軟的.net開發(fā)平臺(tái)上使用C#語言進(jìn)行開發(fā),編寫出功能簡單實(shí)用方便的監(jiān)控軟件。主要包括以下幾個(gè)方面:開發(fā)本軟件所使用的開發(fā)平臺(tái)與技術(shù);IPv4、IPv6簡單介紹;功能模塊;功能設(shè)計(jì);功能實(shí)現(xiàn)等。最后,對本軟件的開發(fā)過程進(jìn)行簡要總結(jié),并介紹一下本人的體會(huì)和感想。</p><p> 【關(guān)鍵詞】:網(wǎng)卡流量 ;.NET;C#;</p>
5、<p><b> 目 錄</b></p><p><b> 一、概述1</b></p><p> 1.1 項(xiàng)目背景與意義1</p><p> 1.2 常見監(jiān)控軟件簡介1</p><p> 1.2.1 360安全衛(wèi)士的網(wǎng)絡(luò)監(jiān)控2</p><p>
6、; 1.2.2 網(wǎng)監(jiān)管軟件-----網(wǎng)路崗2</p><p> 1.3 相關(guān)技術(shù)及開發(fā)工具介紹3</p><p> 1.3.1 Visual Studio .Net集成開發(fā)環(huán)境簡介3</p><p> 1.3.2 C#語言簡介4</p><p> 1.3.3 IPv4、IPv6協(xié)議的簡介及比較4</p>&l
7、t;p> 二、 總體功能設(shè)計(jì)與實(shí)現(xiàn)7</p><p> 2.1 功能設(shè)計(jì)7</p><p> 2.1.1 功能設(shè)計(jì)及描述7</p><p> 2.1.2 功能模塊圖8</p><p> 2.2 功能實(shí)現(xiàn)8</p><p> 2.2.1 主界面實(shí)現(xiàn)8</p><p>
8、 2.2.2 本地信息查詢功能實(shí)現(xiàn)10</p><p> 2.2.3 流量監(jiān)控功能的實(shí)現(xiàn)12</p><p> 2.2.4 顯示進(jìn)程信息的功能實(shí)現(xiàn)15</p><p><b> 三、總結(jié)17</b></p><p><b> 致 謝17</b></p><p&
9、gt; 參 考 文 獻(xiàn)18</p><p><b> 一、概 述</b></p><p> 1.1 項(xiàng)目背景與意義</p><p> 隨著互聯(lián)網(wǎng)時(shí)代快速的發(fā)展,各類的應(yīng)用軟件層出不窮,也有許多專門提供各種軟件下載的專業(yè)網(wǎng)站,如天空,華軍等,這些網(wǎng)站提供的免費(fèi)軟件大大滿足了普通用戶的需求,也給他們展示了互聯(lián)網(wǎng)的神奇之處。然而,有利也有弊
10、,互聯(lián)網(wǎng)在高速發(fā)展的同時(shí)也帶著安全的隱患,比如黑客的攻擊,木馬等,因此,網(wǎng)絡(luò)安全也很快得到了專業(yè)人士的重視,一系列的關(guān)于安全的軟件應(yīng)運(yùn)而生,最大特點(diǎn)的就是殺毒軟件和防火墻。</p><p> 而在一些企業(yè)中,網(wǎng)絡(luò)安全起著至關(guān)重要的作用,數(shù)據(jù)的出入是不允許出現(xiàn)任何閃失的。因此網(wǎng)管人員在做好防護(hù)的同時(shí)也利用一些專業(yè)軟件對網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)的監(jiān)控,以便及時(shí)的做出相應(yīng)措施。但是這些專業(yè)的網(wǎng)絡(luò)軟件都是針對網(wǎng)絡(luò)流量的監(jiān)控,屬于企
11、業(yè)級使用范圍,而對于普通用戶來說,雖然有殺毒軟件和防火墻,但卻不知道一些惡意程序也可以悄悄的在后臺(tái)運(yùn)行,可以神不知鬼不覺的連接網(wǎng)絡(luò),來竊取用戶的信息和隱私。</p><p> 在我們的個(gè)人計(jì)算機(jī)上,網(wǎng)卡是比較容易被忽略的,它是個(gè)人用戶與互聯(lián)網(wǎng)連接的關(guān)鍵所在,而且它也有流量的出入,因?yàn)榫W(wǎng)絡(luò)上的信息流量是通過計(jì)算機(jī)的網(wǎng)卡轉(zhuǎn)換把網(wǎng)上的信息呈現(xiàn)在我們眼前。我們往往都是關(guān)注網(wǎng)絡(luò)流量,這也是網(wǎng)卡為什么容易被忽略的原因了。但
12、是小事物往往有著大作用,通過對網(wǎng)卡流量的監(jiān)控,普通用戶的下載速率肯定是比上傳速率大很多,當(dāng)惡意程序連接網(wǎng)絡(luò)時(shí),上傳速率卻大大大超過下載的速率,此時(shí)用戶就該注意是否存在不正常的網(wǎng)絡(luò)連接。</p><p> 作為學(xué)習(xí)網(wǎng)絡(luò)技術(shù)專業(yè)的一員,也學(xué)習(xí)了一點(diǎn)軟件方面的編程語言,同時(shí)也掌握了一定的軟件開發(fā)理論,借助這次畢業(yè)設(shè)計(jì),想對自己的想法做個(gè)論證,開發(fā)一個(gè)簡單便易操作的針對本地計(jì)算機(jī)網(wǎng)卡流量監(jiān)控的小軟件,但作為畢業(yè)設(shè)計(jì),由
13、于本人沒有任何軟件開發(fā)的經(jīng)驗(yàn),肯定還存在許多的不足,以后會(huì)隨著學(xué)習(xí)的深入而繼續(xù)對它加以改善。</p><p> 1.2 常見監(jiān)控軟件簡介</p><p> 下面舉例介紹比較常見的網(wǎng)絡(luò)監(jiān)控系統(tǒng),比如360安全衛(wèi)士集成的網(wǎng)絡(luò)監(jiān)控,網(wǎng)路崗,分析它們的功能特點(diǎn)。</p><p> 1.2.1 360安全衛(wèi)士的網(wǎng)絡(luò)監(jiān)控</p><p> 36
14、0安全衛(wèi)士是一款安全類上網(wǎng)輔助軟件,它擁有查殺惡意軟件,插件管理,病毒查殺,診斷及修復(fù)四大主要功能,同時(shí)還提供彈出插件免疫,清理使用痕跡以及系統(tǒng)還原等特定輔助功能。而在它的7.0版本中也正式推出了網(wǎng)絡(luò)流量的監(jiān)控功能,主要作用是可以查看系統(tǒng)內(nèi)各個(gè)軟件使用網(wǎng)絡(luò)上傳/下載速度,可以幫助用戶找出后臺(tái)偷偷上傳的軟件。</p><p> 現(xiàn)在網(wǎng)絡(luò)上出現(xiàn)越來越多的軟件因各種目的而聯(lián)網(wǎng),有是為產(chǎn)品更新升級,有的是為了宣傳廣告,
15、特別是有些下載工具和一些視頻軟件及在線音樂播放器等軟件,會(huì)產(chǎn)生很多的上傳流量,這樣不僅許多用戶的隱私因此而被泄漏,而且上網(wǎng)的效率也會(huì)有大大的折扣,而360的流量監(jiān)控功能可以清晰的看到每個(gè)網(wǎng)絡(luò)連接使用的IP地址和端口,并且流量監(jiān)控使用系統(tǒng)標(biāo)準(zhǔn)的底層智能流量獲取技術(shù),不占用帶寬資源,不會(huì)影響系統(tǒng)性能和網(wǎng)速。</p><p> 從以上簡單的介紹可以看出,360安全衛(wèi)士整體是個(gè)功能強(qiáng)大,很好用的安全防范軟件。但從單個(gè)看
16、來,它仍然有一些問題。當(dāng)用戶安裝某些程序,并且是完全信任的程序的時(shí)候,會(huì)提示一些不必要的安全信息,而且一旦拒絕,有些程序是無法安裝成功的。它的流量監(jiān)控也很是強(qiáng)大,它也許能保證不獲取用戶的隱私,但是它能保證不得到用戶計(jì)算機(jī)的相關(guān)信息么,這個(gè)就不知道了。</p><p> 1.2.2 網(wǎng)監(jiān)管軟件-----網(wǎng)路崗</p><p> 網(wǎng)路崗是目前國內(nèi)領(lǐng)先的上網(wǎng)監(jiān)管軟件,現(xiàn)在已經(jīng)推出很多代的網(wǎng)路
17、崗,而且越來越強(qiáng)大,能通過旁路對網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行采集、分析和識別,實(shí)時(shí)監(jiān)視網(wǎng)絡(luò)系統(tǒng)的運(yùn)行狀態(tài),記錄網(wǎng)絡(luò)事件、發(fā)現(xiàn)安全隱患,并對網(wǎng)絡(luò)活動(dòng)的相關(guān)信息進(jìn)行存儲(chǔ)、分析和協(xié)議還原。能追蹤網(wǎng)絡(luò)運(yùn)作情況,一旦發(fā)送問題,立即傳送警示訊息,或重新啟動(dòng)異常中止的服務(wù),或自動(dòng)啟動(dòng)某個(gè)程序,搜集網(wǎng)絡(luò)上各裝置的重要信息,然后利用這些數(shù)據(jù)制作出各裝置不同層面的利用率與可用性的報(bào)表,使之一覽無遺。</p><p> 正是這一系列的強(qiáng)大功能,使
18、之在一下機(jī)構(gòu),企事業(yè)單位和校園網(wǎng)吧得到了廣泛的應(yīng)用,但對于個(gè)人用戶來說,它的功能太雜,而且一般用戶只是簡單的上上網(wǎng),根本用不到這些功能,最終要的,它還不是免費(fèi)的。</p><p> 以上簡單介紹的網(wǎng)絡(luò)監(jiān)控軟件都是針對與網(wǎng)絡(luò)流量的,而網(wǎng)絡(luò)流量跟網(wǎng)卡流量是有區(qū)別的,對于個(gè)人用戶來說,網(wǎng)卡流量的狀態(tài)也可以從一定程度上體現(xiàn)帶寬使用的情況。</p><p> 1.3 相關(guān)技術(shù)及開發(fā)工具介紹<
19、;/p><p> 本系統(tǒng)采用面向?qū)ο蟮能浖_發(fā)辦法,以Microsoft公司的可視化集成開發(fā)環(huán)境 Visual Studio .Net 作為開發(fā)平臺(tái),以C#作為開發(fā)語言實(shí)現(xiàn)預(yù)定的需求功能。</p><p> 1.3.1 Visual Studio .Net集成開發(fā)環(huán)境簡介</p><p> .Net是 Microsoft XML Web services 平臺(tái)。.
20、Net 平臺(tái)為創(chuàng)建新一代分布式Web應(yīng)用提供了所有的工具和技術(shù)(表示技術(shù)、構(gòu)件技術(shù)和數(shù)據(jù)庫技術(shù))。它支持標(biāo)準(zhǔn)的Internet協(xié)議,包括HTTP協(xié)議、XML(可擴(kuò)展標(biāo)記語言)和SOAP(簡單對象訪問協(xié)議),從而實(shí)現(xiàn)了異構(gòu)系統(tǒng)間應(yīng)用程序的集成和通信。.Net 平臺(tái)包括5個(gè)主要部分:</p><p> ?Windows .Net</p><p> ?.Net企業(yè)級服務(wù)器</p&g
21、t;<p> ?.Net Web服務(wù)構(gòu)件</p><p> ?.Net Framework</p><p> ?Visual Studio .Net</p><p> Visual Studio .Net 是為建立基于.Net Framework應(yīng)用程序而設(shè)的一個(gè)可視化集成開發(fā)環(huán)境(Integrated Development Envir
22、oment,IDE)。它提供了更優(yōu)秀的多種編譯語言的編輯和編譯統(tǒng)一的開發(fā)平臺(tái),他是一個(gè)快速開發(fā)企業(yè)級Web應(yīng)用程序以及高性能桌面應(yīng)用的工具。它為所有的編程語言提供了簡單統(tǒng)一的代碼編輯器,包括XML編輯器、HTML編輯器、SQL Server接口、以圖形化的方法設(shè)計(jì)服務(wù)器構(gòu)件的設(shè)計(jì)器、監(jiān)控遠(yuǎn)程機(jī)器的Server Explorer??梢哉f,VisualStdio .Net集中了建立分布式應(yīng)用所需的功能。使用此集成開發(fā)工具而不是用SDK編輯C
23、#程序有以下主要原因:</p><p> ?IDE支持首行縮進(jìn),切c#程序的關(guān)鍵字等可用不同的顏色直觀表示,以便檢查。</p><p> ?IDE的語法導(dǎo)航功能可實(shí)現(xiàn)動(dòng)態(tài)查找、提示編輯工程中的錯(cuò)誤。</p><p> ?便于開發(fā)Windows應(yīng)用程序。可以像Visual Basic一樣直接拖放控件來“繪制”Windows窗體。</p>&l
24、t;p> 1.3.2 C#語言簡介</p><p> C#是一種現(xiàn)代的、面向?qū)ο蟮恼Z言,它結(jié)合了C/C++和Visual C++的強(qiáng)大功能以及Visual Basic 的簡單易用性。C#有以下新特性:</p><p> ?簡單,C#做了些該進(jìn),使語言更簡單。</p><p> ?面向?qū)ο螅珻#支持面向?qū)ο蟮娜N編程原則:封裝、繼承和多態(tài)。</
25、p><p> ?類型安全,C#去掉了指針,從根本上保證了程序的穩(wěn)定性和類型安全。</p><p> ?版本控制,C#實(shí)現(xiàn)了版本技術(shù),避免了“DLL災(zāi)難”。</p><p> ?兼容性,C#允許在遵守.Net Framework CLS 的條件下訪問不同的API,可以與Windows的幾種傳統(tǒng)服務(wù)交互。</p><p> ?靈活性,
26、C#允許聲明一些不安全的方法和類,從而使用指針、結(jié)構(gòu)和靜態(tài)數(shù)組。</p><p> 總之,C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏和模版,不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的
27、首選語言。</p><p> 1.3.3 IPv4、IPv6協(xié)議的簡介及比較</p><p> IPv4是Internet Protocol version 4(網(wǎng)際協(xié)議版本4)的英文簡稱,而中文簡稱為“網(wǎng)協(xié)版4”。 目前的全球因特網(wǎng)所采用的協(xié)議族是TCP/IP協(xié)議族。IP是TCP/IP協(xié)議族中網(wǎng)絡(luò)層的協(xié)議,是TCP/IP協(xié)議族的核心協(xié)議。</p><p>
28、IPv4的協(xié)議結(jié)構(gòu):如圖1-1所示:</p><p> 圖1-1 Ipv4協(xié)議格式圖</p><p> 它的最大問題是網(wǎng)絡(luò)地址資源有限,而IPv6的出現(xiàn)完全解決了這個(gè)問題,它所擁有的地址容量是IPv4的約8×10^28倍,IPV6地址長度為128比特,地址空間增大了2的96次方倍,靈活的IP報(bào)文頭部格式使用一系列固定格式的擴(kuò)展頭部取代了IPV4中可變長度的選項(xiàng)字段。IPV6中
29、選項(xiàng)部分的出現(xiàn)方式也有所變化,使路由器可以簡單路過選項(xiàng)而不做任何處理,加快了報(bào)文處理速度,IPV6簡化了報(bào)文頭部格式,字段只有7個(gè),加快報(bào)文轉(zhuǎn)發(fā),提高了吞吐量,提高安全性,更支持多種的服務(wù)類型。</p><p> IPv6的包頭格式:如圖1-2所示:</p><p> 圖1-2 Ipv6協(xié)議格式圖</p><p> IPv6與IPv4相比有以下特點(diǎn)和優(yōu)點(diǎn):&
30、lt;/p><p> 更大的地址空間。IPv4中規(guī)定IP地址長度為32,即有2^32-1個(gè)地址;而IPv6中IP地址的長度為128,即有2^128-1個(gè)地址??鋸堻c(diǎn)說就是,如果IPV6被廣泛應(yīng)用以后,全世界的每一粒沙子都會(huì)有相對應(yīng)的一個(gè)IP地址。 </p><p> 更小的路由表。IPv6的地址分配一開始就遵循聚類(Aggregation)的原則,這使得路由器能在路由表中用一條記錄(En
31、try)表示一片子網(wǎng),大大減小了路由器中路由表的長度,提高了路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的速度。 </p><p> 增強(qiáng)的組播(Multicast)支持以及對流的支持(Flow-control)。這使得網(wǎng)絡(luò)上的多媒體應(yīng)用有了長足發(fā)展的機(jī)會(huì),為服務(wù)質(zhì)量(QoS)控制提供了良好的網(wǎng)絡(luò)平臺(tái)。</p><p> 加入了對自動(dòng)配置(Auto-configuration)的支持。這是對DHCP協(xié)議改進(jìn)和
32、擴(kuò)展,使得網(wǎng)絡(luò)(尤其是局域網(wǎng))的管理更加方便和快捷。</p><p> 更高的安全性。在使用IPv6網(wǎng)絡(luò)中,用戶可以對網(wǎng)絡(luò)層的數(shù)據(jù)進(jìn)行加密并對IP報(bào)文進(jìn)行校驗(yàn),這極大地增強(qiáng)了網(wǎng)絡(luò)安全。</p><p> 二、 總體功能設(shè)計(jì)與實(shí)現(xiàn)</p><p> 在第一章中簡單的分析了一些個(gè)人和企業(yè)所使用的監(jiān)控軟件,IPv4、IPv6的簡單介紹,還有編寫本程序使用的技術(shù)、工具
33、等,下面將從功能設(shè)計(jì)、功能實(shí)現(xiàn)兩個(gè)方面重點(diǎn)描述。</p><p><b> 2.1 功能設(shè)計(jì)</b></p><p> 現(xiàn)在的計(jì)算機(jī)無疑都是比較前衛(wèi)的,而且隨著無線技術(shù)的發(fā)展,無線網(wǎng)卡也出現(xiàn)在個(gè)人計(jì)算機(jī)上,所以一般計(jì)算機(jī)都具備兩塊以上的網(wǎng)卡,根據(jù)一下監(jiān)控軟件的功能,去掉那些復(fù)雜的功能,保留最實(shí)用常用的功能,專門針對本機(jī)網(wǎng)卡的流量監(jiān)控。下面主要介紹程序的功能設(shè)計(jì)及描
34、述、功能模塊圖等。</p><p> 2.1.1 功能設(shè)計(jì)及描述</p><p> 本程序的主要任務(wù)和目的是對本地計(jì)算機(jī)所有的網(wǎng)卡流量進(jìn)行監(jiān)控,加上一些輔助的本地信息查詢,進(jìn)程的顯示得到當(dāng)前計(jì)算機(jī)的基本信息,達(dá)到功能簡潔方便,消耗資源少而又不影響日常娛樂的需求。其主要?jiǎng)澐譃橄旅嫒齻€(gè)功能模塊,每個(gè)功能模塊的作用描述如下:</p><p><b> 本機(jī)
35、基本信息查詢:</b></p><p> 查看IP地址:主要查看本機(jī)在局域網(wǎng)內(nèi)中的IP地址</p><p> 查看主機(jī)名:用于查看本機(jī)計(jì)算機(jī)的名稱</p><p> 查看MAC地址:查看網(wǎng)卡的唯一地址</p><p> 查看CPU信息:獲取CPU型號、序列號</p><p> 流量監(jiān)控:獲取到本機(jī)
36、的網(wǎng)卡列表,然后針對某塊網(wǎng)卡進(jìn)行動(dòng)態(tài)的流量監(jiān)控,并顯示出來</p><p> 顯示進(jìn)程:獲取當(dāng)前計(jì)算機(jī)正在前臺(tái)或后臺(tái)運(yùn)行的應(yīng)用程序的進(jìn)程</p><p> 2.1.2 功能模塊圖</p><p> 其具體功能如圖2-1所示:</p><p><b> 圖2-1</b></p><p>&l
37、t;b> 2.2 功能實(shí)現(xiàn)</b></p><p> 下面主要介紹如何根據(jù)上述的功能模塊圖實(shí)現(xiàn)具體的功能</p><p> 2.2.1 主界面實(shí)現(xiàn)</p><p> 下圖為本系統(tǒng)的主要界面,由Visual Studio中已安裝模板Windows 應(yīng)用窗體程序(winform)生成,所用的控件、組件、容器、文本框等都是有Winform提供,本
38、想添加點(diǎn)顏色使之更加的生動(dòng),但本人對于美工不是很擅長,以后另行繪制,由于界面是控件、組件等拖放組成,大部分代碼有窗體設(shè)計(jì)器自動(dòng)生成,需個(gè)人改動(dòng)的并不多,所用這部分就不詳細(xì)說明了,只把主窗體MainForm的代碼示下。如圖2-2所示:</p><p><b> 圖2-2</b></p><p> this.components = new System.Compon
39、entModel.Container();</p><p> this.tabControl1 = new System.Windows.Forms.TabControl();</p><p> this.tabPage1 = new System.Windows.Forms.TabPage();</p><p> this.groupBox1 = new S
40、ystem.Windows.Forms.GroupBox();</p><p> this.labelCPU = new System.Windows.Forms.Label();</p><p> this.tbMAC = new System.Windows.Forms.TextBox();</p><p> this.tbname = new Syste
41、m.Windows.Forms.TextBox();</p><p> this.tbIP = new System.Windows.Forms.TextBox();</p><p> this.chakCPU = new System.Windows.Forms.Button();</p><p> this.chakMAC = new System.Win
42、dows.Forms.Button();</p><p> this.chakIPaddress = new System.Windows.Forms.Button();</p><p> this.chakcompname = new System.Windows.Forms.Button();</p><p> this.tabPage2 = new S
43、ystem.Windows.Forms.TabPage();</p><p> this.groupBox2 = new System.Windows.Forms.GroupBox();</p><p> this.groupBox4 = new System.Windows.Forms.GroupBox();</p><p> this.down = new
44、 System.Windows.Forms.Label();</p><p> this.up = new System.Windows.Forms.Label();</p><p> this.label1 = new System.Windows.Forms.Label();</p><p> this.label2 = new System.Window
45、s.Forms.Label();</p><p> this.groupBox3 = new System.Windows.Forms.GroupBox();</p><p> this.listadapters = new System.Windows.Forms.ListBox();</p><p> this.download = new System.
46、Windows.Forms.Label();</p><p> this.bshow = new System.Windows.Forms.Button();</p><p> this.tabPage4 = new System.Windows.Forms.TabPage();</p><p> this.listprocess = new System.W
47、indows.Forms.ListView();</p><p> this.shows = new System.Windows.Forms.Button();</p><p> this.endupprogram = new System.Windows.Forms.Button();</p><p> this.timercounter=newSyste
48、m.Windows.Forms.Timer(this.components);</p><p> this.tabControl1.SuspendLayout();</p><p> this.tabPage1.SuspendLayout();</p><p> this.groupBox1.SuspendLayout();</p><p&
49、gt; this.tabPage2.SuspendLayout();</p><p> this.groupBox2.SuspendLayout();</p><p> this.groupBox4.SuspendLayout();</p><p> this.groupBox3.SuspendLayout();</p><p>
50、this.tabPage4.SuspendLayout();</p><p> this.SuspendLayout();</p><p> 2.2.2 本地信息查詢功能實(shí)現(xiàn)</p><p> 1、查詢IP地址:這個(gè)功能需要使用到 System.Net命名空間,在C#編程中,可利用它提供的DNS類獲取IP地址,主要代碼如下:</p><p&
51、gt; string ipaddress = "";</p><p> IPAddress[] addresslist=Dns.GetHostAddresses(Dns.GetHostName());</p><p> for (int i = 1; i < addresslist.Length; i++)</p><p><b
52、> {</b></p><p> ipaddress += addresslist[i].ToString() + "";</p><p><b> }</b></p><p> tbIP.Text = ipaddress.ToString() + "";</p>
53、<p> 上面的代碼就是利用了DNS類,它主要是從域名系統(tǒng)中查找關(guān)于指定主機(jī)的信息,通過Dns.GetHostAddresses(Dns.GetHostName())得到指定主機(jī)的IP地址,并把它賦予IPAddress[]類中的變量,再把它在文本框中顯示出來。</p><p> 2、查詢主機(jī)名:這部分功能與上面的IP地址功能類似,也通過System.Net命名空間和DNS類來從域名系統(tǒng)中獲得主機(jī)名,
54、主要代碼如下:</p><p> string hostname = Dns.GetHostName();</p><p> tbname.Text = "";</p><p> tbname.Text = hostname + "\n";</p><p> 看上去非常的簡單,最主要的還是同過D
55、NS類來實(shí)現(xiàn)</p><p> 3、查詢MAC地址:在獲取本地MAC地址時(shí),可以使用WMI規(guī)范,在.NET框架中,WMI規(guī)范的實(shí)現(xiàn)定義在System.Management命名空間中,但要使用該命名空間就必須先引用該程序指令集,所以在右側(cè)右擊引用,選擇添加引用,在.NET中找到System.Management即可。主要代碼如下:</p><p> ManagementClass mac
56、 = new ManagementClass("win32_networkadapterconfiguration");</p><p> ManagementObjectCollection mc = mac.GetInstances();</p><p> foreach (ManagementObject m in mc)</p><p&g
57、t;<b> {</b></p><p> if ((bool)m["IPEnabled"] == true)</p><p> tbMAC.Text += m["MacAddress"].ToString() + "\n";</p><p> m.Dispose();<
58、/p><p><b> }</b></p><p> 通過ManagementClass類來提取MAC地址信息,再用ManagementObjectCollection類來檢索并返回對象的集合,通過循環(huán)來找到MAC地址字段值,并在文本框中顯示。</p><p> 4.查詢CPU信息:與獲取MAC地址的功能類似,也是通過可以使用WMI規(guī)范,Sy
59、stem.Management的命名空間來實(shí)現(xiàn)模塊功能。主要代碼如下:</p><p> ManagementObjectSearcher query;</p><p> ManagementObjectCollection querycollection;</p><p> string sql = "select * from win32_pro
60、cessor";</p><p> query = new ManagementObjectSearcher(sql);</p><p> querycollection = query.Get();</p><p> foreach (ManagementObject mo in querycollection)</p><p&
61、gt;<b> {</b></p><p> labelCPU.Text += "cpu型號:" + "\n" + mo["name"].ToString() + "\n" + "\n";</p><p><b> }</b></p&g
62、t;<p> string cpuInfo = "";</p><p> ManagementClass cimobject = new ManagementClass("Win32_Processor");</p><p> ManagementObjectCollection moc = cimobject.GetInstan
63、ces();</p><p> foreach (ManagementObject mo in moc)</p><p><b> {</b></p><p> cpuInfo = mo.Properties["ProcessorId"].Value.ToString();</p><p>
64、labelCPU.Text += "cpu序列號:" + "\n" + cpuInfo.ToString() + "\n";</p><p><b> }</b></p><p><b> 這段代碼中:</b></p><p> ManagementObje
65、ctSearcher類用于根據(jù)指定的查詢檢索管理對象的集合</p><p> ManagementObjectCollection類為管理對象的集合,分別定義這個(gè)兩個(gè)類的變量,通過SELECT語句提取處理器的所有信息,并提取其中的信息,通過循環(huán)語句得到CPU的型號。CPU的序列號則是硬件ID,通過上述兩個(gè)類調(diào)用CPU屬性值,得到屬性ID字段值,并顯示出來。</p><p> 2.2.3
66、 流量監(jiān)控功能的實(shí)現(xiàn)</p><p> 這個(gè)模塊的功能也可分為兩個(gè)小模塊,分別是獲取網(wǎng)卡列表和對指定的網(wǎng)卡進(jìn)行流量監(jiān)控。流量監(jiān)控功能的實(shí)現(xiàn)跟上面的功能實(shí)現(xiàn)相似,也是通過引用NetworkMonitor的程序指令集和調(diào)用using Echevil命名空間。值得注意的是,這個(gè)模塊所引用的鏈接庫在軟件的調(diào)用庫中沒有,因此,不得不尋求網(wǎng)上朋友的幫助了。把下載下來的NetworkMonitor.dll放到程序文件中,并在
67、代碼頁引用。</p><p><b> 獲取網(wǎng)卡列表:</b></p><p><b> 主要代碼如下:</b></p><p> monitor = new NetworkMonitor();</p><p> this.adapters = monitor.Adapters;</p
68、><p> if (adapters.Length == 0)</p><p><b> {</b></p><p> this.listadapters.Enabled = false;</p><p> MessageBox.Show("No network adapters found on this
69、 computer.");</p><p><b> return;</b></p><p><b> }</b></p><p> this.listadapters.Items.AddRange(this.adapters);</p><p> 定義NetworkMonitor
70、類中的變量,通過調(diào)用monitor.Adapters得到本機(jī)所有適配器的信息,并添加到列表框中。聯(lián)網(wǎng)狀態(tài)下流量信息如圖2-3所示:</p><p><b> 圖2-3</b></p><p> 迅雷下載任務(wù)如圖2-4所示:</p><p><b> 圖2-4</b></p><p> 迅雷下
71、載下網(wǎng)卡流量信息如圖2-5所示:</p><p><b> 圖2-5</b></p><p><b> 監(jiān)控指定的網(wǎng)卡:</b></p><p> 這個(gè)模塊需要用到類似計(jì)數(shù)器的功能</p><p><b> 主要代碼如下:</b></p><p>
72、; monitor.StopMonitoring();</p><p> monitor.StartMonitoring(adapters[this.listadapters.SelectedIndex]);</p><p> this.timercounter.Stop();</p><p> this.up.Text = "";<
73、;/p><p> this.down.Text = "";</p><p> 上述是在列表框控件上實(shí)現(xiàn)針對選擇具體的列表項(xiàng),然后對該網(wǎng)卡的上傳速率和下載速率分別賦空值,當(dāng)點(diǎn)擊顯示信息時(shí)才開始監(jiān)控:</p><p> if (this.listadapters.SelectedIndex < 0)</p><p>&
74、lt;b> {</b></p><p> MessageBox.Show("請指定要監(jiān)控的網(wǎng)卡", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);</p><p> this.timercounter.Stop();</p><p>&l
75、t;b> }</b></p><p><b> else</b></p><p> this.timercounter.Start();</p><p> 上述代碼是防止在沒有選擇網(wǎng)卡項(xiàng)的情況下而實(shí)現(xiàn)的,if語句判斷有沒有選中指定的網(wǎng)卡,如果沒有選擇,則this.listadapters.SelectedIndex等于
76、-1,即小于0,反之就會(huì)觸發(fā)計(jì)數(shù)器對指定網(wǎng)卡進(jìn)行監(jiān)控。</p><p> NetworkAdapter adapter = this.adapters[this.listadapters.SelectedIndex];</p><p> this.up.Text = string.Format("{0:n} kbps ", adapter.UploadSpeedKb
77、ps);</p><p> this.down.Text=string.Format("{0:n}kbps",adapter.DownloadSpeedKbps;</p><p> nsc1.Value = (int)adapter.UploadSpeed / 100; </p><p> nsc2.Value = (int)adapter
78、.DownloadSpeed / 100;</p><p> 上面一部分也是通過調(diào)用monitor.StopMonitoring()和monitor.StartMonitoring()來實(shí)現(xiàn)對列表框中的指定網(wǎng)卡進(jìn)行監(jiān)控,中間的命令是當(dāng)選中指定網(wǎng)卡后開始執(zhí)行監(jiān)控,調(diào)用計(jì)數(shù)器,在這個(gè)過程中,又通過調(diào)用format把NetworkMonitor中的adapter.UploadSpeedKbps(上傳流量)和adapt
79、er.DownloadSpeedKbps(下載流量)轉(zhuǎn)換成{0:n} kbps格式,并且把流量在波形控件中顯示,從而實(shí)現(xiàn)對指定網(wǎng)卡的流量監(jiān)控。</p><p> 2.2.4 顯示進(jìn)程信息的功能實(shí)現(xiàn)</p><p> 這個(gè)模塊的功能實(shí)現(xiàn)大部分用到了listview控件的屬性,代碼如下:</p><p> this.listprocess.View = View.
80、Details; 表示在控件中的顯示方式 如圖2-4</p><p> this.listprocess.Columns.Add("進(jìn)程名稱", 170, HorizontalAlignment.Left);</p><p> this.listprocess.Columns.Add("內(nèi)存使用", 150, HorizontalAlignm
81、ent.Left);</p><p> 上面代碼表示在listview控件的第一行顯示“進(jìn)程名稱”,“內(nèi)存使用”,如圖2-6所示:</p><p><b> 圖2-6</b></p><p> 再調(diào)用System.Diagnostics.process得到本地系統(tǒng)的進(jìn)程信息,代碼如下:</p><p> Proc
82、ess[] processes = Process.GetProcesses(); //獲取進(jìn)程信息</p><p> Process instance;</p><p> for (int i = 0; i < processes.Length; i++)</p><p><b> {</b></p><p&g
83、t; instance = processes[i];</p><p> ListViewItem temp = new ListViewItem();</p><p> temp.Text = instance.ProcessName;</p><p> temp.SubItems.Add(Convert.ToString((Convert.ToUInt6
84、4(instance.WorkingSet.ToString())) / 1024) + "K"); //轉(zhuǎn)換成具體數(shù)值字符串</p><p> this.listprocess.Items.Add(temp); //添加到控件中</p><p> instance.Refresh();</p><p><b> }</
85、b></p><p> 再利用workingSet 獲取關(guān)聯(lián)進(jìn)程的物理內(nèi)存情況,并轉(zhuǎn)換成字符串形式添加到listview控件當(dāng)中。</p><p><b> 三、總 結(jié)</b></p><p> 從開始的選題,到現(xiàn)在的結(jié)束,歷時(shí)兩個(gè)多月。在這期間,整個(gè)畢業(yè)設(shè)計(jì)的過程并不是一帆風(fēng)順的。在前期的選題過程中的迷茫,在開始的程序開發(fā)過程中的
86、手足無措,都記憶猶新。以前學(xué)習(xí)的都是理論知識,突然見要選擇一個(gè)項(xiàng)目并把它實(shí)現(xiàn),這對我們來說有些措手不及,而且項(xiàng)目設(shè)計(jì)所用到的知識范圍超出了自己所掌握的范疇,頓時(shí)一種無力的心情油然而生。幸好在導(dǎo)師的細(xì)心指導(dǎo)下,在同學(xué)的無私幫助下,經(jīng)過自己的努力,終于克服了項(xiàng)目設(shè)計(jì)的技術(shù)難題,認(rèn)真地完成了畢業(yè)設(shè)計(jì)。</p><p> 在系統(tǒng)的開發(fā)過程中,由于是初次自己動(dòng)手設(shè)計(jì)開發(fā),在知識、經(jīng)驗(yàn)方面都存在著許多的不足。而且在整個(gè)的開
87、發(fā)過程中,對于所用到的知識并不熟悉,從哪方面入手,整個(gè)程序要完成什么樣的功能成了一直困擾我的問題,后來通過對網(wǎng)上的一些小工具的研究分析,也逐漸了解了這類軟件的作用和功能,并確定了主要方向。盡管這個(gè)小程序還有很多的不足和缺陷,但功能簡單,界面簡潔,操作方便等是這個(gè)程序必備的。</p><p> 在此我要特別感謝的是何亮老師,作為我的指導(dǎo)老師,在這個(gè)過程中遇到很多技術(shù)上難題,何老師給我提供了很好的解決建議,給了我不
88、少幫助,也避免了我走許多的彎路,沒有他的指導(dǎo),我就不能較好的完成課題設(shè)計(jì)任務(wù),在此真誠感謝老師的幫助和輔導(dǎo)。</p><p> 通過這個(gè)項(xiàng)目設(shè)計(jì),我了解了軟件開發(fā)的過程,鞏固了我對visual studio 的使用和學(xué)習(xí),同時(shí)也掌握更寬的知識面。雖然我是學(xué)習(xí)網(wǎng)絡(luò)技術(shù)專業(yè)的,但我相信通過這次的親手實(shí)踐,不管是現(xiàn)在還是將來,我都將受益匪淺。</p><p><b> 致 謝<
89、;/b></p><p> 在論文即將完成之際,回顧充實(shí)的學(xué)習(xí)和開發(fā)過程,本人在此向我的指導(dǎo)老師**表示真誠的感謝,整個(gè)過程當(dāng)中遇到很多不懂的知識和難題,*老師給我提供了相當(dāng)好的解決建議,給了我不少幫助,使我少走好多彎路。在撰寫論文階段,*老師幾次審閱我的論文,提出了許多寶貴意見,沒有他的指導(dǎo),我就不能較好的完成課題設(shè)計(jì)的任務(wù)。在此真誠感謝他耐心的輔導(dǎo)。</p><p><b
90、> 參 考 文 獻(xiàn)</b></p><p> 1、《Visual C#.NET應(yīng)用編程150例》 尹力宏主編,電子工業(yè)出版社 2003</p><p> 2、《Visual C# 2005程序設(shè)計(jì)教程》 崔淼,陳明非 主編,機(jī)械工業(yè)出版社 2007</p><p> 3、《C#網(wǎng)絡(luò)應(yīng)用編程》 馬駿主編,人民郵電出版社 2010</p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)-畢業(yè)論文
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)-畢業(yè)論文
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)-畢業(yè)論文
- 基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng)-畢業(yè)論文
- 網(wǎng)絡(luò)流量監(jiān)控及分析工具畢業(yè)論文
- 基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng)-畢業(yè)論文
- 視頻監(jiān)控畢業(yè)論文
- 工程流量控制畢業(yè)論文
- 現(xiàn)金流量畢業(yè)論文
- 監(jiān)控圖像處理畢業(yè)論文
- 視頻監(jiān)控系統(tǒng)畢業(yè)論文
- 視頻監(jiān)控系統(tǒng)畢業(yè)論文
- 現(xiàn)金流量管理畢業(yè)論文
- 畢業(yè)論文范文——網(wǎng)站流量統(tǒng)計(jì)
- 畢業(yè)論文范文——網(wǎng)站流量統(tǒng)計(jì)
- 現(xiàn)金流量管理-畢業(yè)論文
- 畢業(yè)論文——溫度監(jiān)控系統(tǒng)的設(shè)計(jì)
- 畢業(yè)論文---溫度監(jiān)控系統(tǒng)的設(shè)計(jì)
- 溫度監(jiān)控系統(tǒng)的設(shè)計(jì)-畢業(yè)論文
- 渦街流量計(jì)畢業(yè)論文
評論
0/150
提交評論