版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 傳感網(wǎng)技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)</p><p> 題 目: 本地計(jì)算機(jī)網(wǎng)絡(luò)信息管理</p><p> 系 別: 計(jì)算機(jī)科學(xué)與工程 </p><p> 專 業(yè): 信息安全 </p><p> 學(xué)生姓名: xxx </p&
2、gt;<p> 學(xué) 號(hào): 00000000000 </p><p> 指導(dǎo)教師: xx </p><p> 2013年 3 月 18 日</p><p><b> 摘 要</b></p><p> 本機(jī)網(wǎng)絡(luò)信息管理
3、器提供了有關(guān)計(jì)算機(jī)性能的信息,并顯示了計(jì)算機(jī)上主要設(shè)備信息;如果連接到網(wǎng)絡(luò),那么還可以查看網(wǎng)絡(luò)狀態(tài)并迅速了解網(wǎng)絡(luò)是如何工作的。它的用戶界面提供了設(shè)置網(wǎng)絡(luò)信息的選項(xiàng),其下還有具體的內(nèi)容設(shè)置,而且這里可以查看到當(dāng)前系統(tǒng)的CPU使用比率、內(nèi)存等數(shù)據(jù),默認(rèn)設(shè)置下系統(tǒng)每隔兩秒鐘對(duì)數(shù)據(jù)進(jìn)行1次自動(dòng)更新。</p><p><b> 目 錄</b></p><p> 緒論
4、………………………………………………………………………………01</p><p> 1.1 IP/TCP協(xié)議常識(shí) …………………………………………………………08</p><p> 1.2 Socket的簡(jiǎn)介 ……………………………………………………………09</p><p> 規(guī)劃設(shè)計(jì) …………………………………………………………………………11<
5、/p><p> 2.1 課題來(lái)源 ……………………………………………………………………11</p><p> 2.2 需求分析 …………………………………………………………………11</p><p> 系統(tǒng)分析與設(shè)計(jì)方案 ……………………………………………………………12</p><p> 3.1 聊天系統(tǒng)的總體設(shè)計(jì)要點(diǎn) …………
6、……………………………………12</p><p> 3.2 聊天系統(tǒng)的設(shè)計(jì)步驟及功能模塊劃分 ……………………………………12</p><p> 3.3 功能模塊結(jié)構(gòu)圖 …………………………………………………………13</p><p> 系統(tǒng)設(shè)計(jì)環(huán)境與測(cè)試 …………………………………………………………26</p><p> 4
7、.1 開(kāi)發(fā)環(huán)境和工具 …………………………………………………………26</p><p> 4.2 硬件環(huán)境 ……………………………………………………………………26</p><p> 4.3 聊天系統(tǒng)的測(cè)試 …………………………………………………………26</p><p> 課程設(shè)計(jì)總結(jié) ……………………………………………………………………28<
8、/p><p> 5.1 課程設(shè)計(jì)總結(jié) ………………………………………………………………28</p><p> 5.2 經(jīng)驗(yàn)和感想 …………………………………………………………………28</p><p> 參考文獻(xiàn) …………………………………………………………………………31</p><p><b> 緒論</b>&l
9、t;/p><p> 隨著互聯(lián)網(wǎng)逐步普及,人們的生活和工作也越來(lái)越離不開(kāi)信息網(wǎng)絡(luò)的支持, 而聊天室是人們最常見(jiàn), 最直接的網(wǎng)上交流的方式。本信息管理系統(tǒng)以網(wǎng)絡(luò)設(shè)置為主,為廣大用戶提供一個(gè)簡(jiǎn)潔的、方便的網(wǎng)絡(luò)設(shè)置方式,也是使網(wǎng)絡(luò)設(shè)置更簡(jiǎn)單,更適用于對(duì)電腦了解不多的用戶。本文所介紹的網(wǎng)絡(luò)信息管理系統(tǒng)是基于開(kāi)放的C#應(yīng)用程序開(kāi)發(fā)設(shè)計(jì)的,其主要特性是能動(dòng)態(tài)、實(shí)時(shí)的完成信息的傳遞,且具有高效的交互性,更有效的反映本機(jī)的網(wǎng)絡(luò)設(shè)置狀
10、況,易于維護(hù)和更新,其運(yùn)行所需環(huán)境及其工作流程和各個(gè)功能控件的工作原理將在本文依次介紹,并且文中提供了部分程序源代碼。</p><p> 1.1 IP/TCP協(xié)議常識(shí)</p><p> (1)IP、TCP協(xié)議的特點(diǎn):</p><p> TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控制協(xié)議/
11、網(wǎng)際協(xié)議的縮寫(xiě), TCP/IP是當(dāng)今網(wǎng)絡(luò)互聯(lián)的核心協(xié)議。TCP/IP協(xié)議的體系結(jié)構(gòu)共有四個(gè)層次,即應(yīng)用層、傳輸層、網(wǎng)絡(luò)互聯(lián)層和網(wǎng)絡(luò)接口層。</p><p> IP協(xié)議的作用:第一,它是網(wǎng)絡(luò)層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一格式。第二,提供不可靠的無(wú)連接的服務(wù)。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供路由選擇的信息,沒(méi)有差錯(cuò)校驗(yàn)和處理的機(jī)制。</p><p> TCP協(xié)議的功
12、能:差錯(cuò)控制——可靠性、面向連接、分段(Segment)、端口號(hào)。TCP是傳輸控制協(xié)議,是面向連接的提供了一種可靠的傳輸服務(wù),它用三次握手和滑動(dòng)窗口機(jī)制來(lái)保證傳輸?shù)目煽啃?,及進(jìn)行流量控制。</p><p> TCP/IP協(xié)議具有以下特點(diǎn):</p><p> 協(xié)議標(biāo)準(zhǔn)具有開(kāi)放性,其獨(dú)立于特定的計(jì)算機(jī)硬件及操作系統(tǒng),可以免費(fèi)使用。</p><p> 統(tǒng)一分配網(wǎng)絡(luò)地
13、址,使得每個(gè)TCP/IP 設(shè)備在網(wǎng)絡(luò)中都具有唯一的IP地址。</p><p> 實(shí)現(xiàn)了高層協(xié)議的標(biāo)準(zhǔn)化,能為用戶提供多種可靠的服務(wù)。</p><p> (2)TCP/IP協(xié)議進(jìn)行傳輸數(shù)據(jù)傳輸?shù)倪^(guò)程:</p><p> 應(yīng)用程序?yàn)榱藗鬏敂?shù)據(jù)會(huì)調(diào)用TCP,將數(shù)據(jù)和對(duì)應(yīng)的參數(shù)傳給TCP,將TCP 數(shù)據(jù)包封裝在IP包內(nèi),通過(guò)網(wǎng)絡(luò)送給目的TCP。接收方TCP在接收到數(shù)
14、據(jù)后通知上層應(yīng)用程序,TCP將保證接收數(shù)據(jù)的正確性。在實(shí)現(xiàn)TCP的主機(jī)上,TCP可以被看成是一個(gè)模塊,和文件系統(tǒng)區(qū)別不大,TCP 也可以調(diào)用一些操作系統(tǒng)的功能,TCP不直接和網(wǎng)絡(luò)打交道,控制網(wǎng)絡(luò)的任務(wù)由專門(mén)的設(shè)備驅(qū)動(dòng)模塊完成。TCP只是調(diào)用IP接口,向TCP提供所有TCP需要的服務(wù)。</p><p><b> (3)端口號(hào):</b></p><p> 有的時(shí)候,一
15、個(gè)ip地址不能完整的標(biāo)識(shí)一臺(tái)服務(wù)器,這是應(yīng)為一臺(tái)物理性的計(jì)算機(jī)同時(shí)運(yùn)行著多個(gè)應(yīng)用程序,這就需要我們來(lái)區(qū)別同一臺(tái)機(jī)子上的不同的服務(wù),所以就在傳輸層和應(yīng)用層上設(shè)置接口,就是 端口。端口實(shí)際是一個(gè)16位長(zhǎng)的 地址,他的范圍是0~65535之間,其中0~1023是熟知端口,主要是給提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進(jìn)程都只道的,1024~65535為一般端口,也稱動(dòng)態(tài)端口、連接端口,用來(lái)隨時(shí)分配要求通信的個(gè)客戶端應(yīng)用程序。在數(shù)據(jù)傳輸過(guò)程
16、中,各種服務(wù)器不斷的檢測(cè)分配給他的端口,一邊發(fā)現(xiàn)要求和他通信的客戶端。</p><p> Windows Management Instrumentation,Windows 管理規(guī)范</p><p> WMI(Windows Management Instrumentation,Windows 管理規(guī)范)是一項(xiàng)核心的 Windows 管理技術(shù);用戶可以使用 WMI 管理本地和遠(yuǎn)程計(jì)算
17、機(jī)。</p><p> Windows 2K/XP和Windows 98 都支持WMI;如果為NT 4.0和Windows 95加上了 Service Pack 4或更高版本,N </p><p><b> WMI</b></p><p> T 4.0和Win95也支持WMI。因此,用WMI進(jìn)行遠(yuǎn)程管理時(shí),并非一定要用Windows 2K
18、/XP(當(dāng)然,如果WMI腳本在一臺(tái)沒(méi)有性能監(jiān)視器的Win9x機(jī)器上運(yùn)行,就不能在遠(yuǎn)程Win9x系統(tǒng)上查詢Windows 2K/XP的性能監(jiān)視器。 </p><p> 如前所述,WMI允許通過(guò)一個(gè)公共的接口訪問(wèn)多種操作系統(tǒng)構(gòu)成單元,因此不必分別對(duì)待各種底層接口或所謂的“提供者”。利用WMI可以高效地管理遠(yuǎn)程和本地的計(jì)算機(jī);與此相對(duì),并非所有的Windows 2K/XP命令行工具都支持遠(yuǎn)程運(yùn)行。 </p>
19、;<p> WMI是WBEM模型的一種實(shí)現(xiàn)。WBEM即Web-Based Enterprise Management,或基于Web的企業(yè)管理,WBEM由DMTF(Distributed Management Task Force,分布式管理任務(wù)組)在許多廠商的幫助下創(chuàng)立,包括Compaq、Sun、Microsoft等。WBEM的目標(biāo)是,為管理企業(yè)環(huán)境開(kāi)發(fā)一個(gè)標(biāo)準(zhǔn)的接口集。WBEM模型最關(guān)鍵的部分是它的數(shù)據(jù)模型(或描述和定
20、義對(duì)象的方式)、編碼規(guī)范(Encoding Specification),以及在客戶端和服務(wù)器端之間傳輸數(shù)據(jù)的模式。 </p><p> WBEM的數(shù)據(jù)模型是CIM(Common Information Model,公共信息模型)。CIM是一個(gè)用來(lái)命名計(jì)算機(jī)的物理和邏輯單元的標(biāo)準(zhǔn)的命名系統(tǒng)(或稱為命名模式),例如硬盤(pán)的邏輯分區(qū)、正在運(yùn)行的應(yīng)用的一個(gè)實(shí)例,或者一條電纜。 </p><p>
21、 CIM是一個(gè)面向?qū)ο蟮哪P停褂靡唤M面向?qū)ο蟮男g(shù)語(yǔ)進(jìn)行描述。CIM包含類(Class),類是被管理單元的模板。類的實(shí)例稱為對(duì)象(Object),對(duì)象代表著底層系統(tǒng)的一個(gè)具體單元。名稱空間(Namespace)是一個(gè)類的集合,每個(gè)名稱空間面向一個(gè)特定的管理領(lǐng)域。類包含屬性(Property)和方法(Method)。 </p><p> CIM分三層。第一層是核心模型(Core Model),這一層包含的類定義
22、對(duì)于所有管理領(lǐng)域來(lái)說(shuō)都是共同的。第二層是公共模型(Common Model),這一層包含的類定義對(duì)于特定的管理領(lǐng)域來(lái)說(shuō)是公共的,但與具體的操作系統(tǒng)和系統(tǒng)設(shè)計(jì)無(wú)關(guān)。第三層是擴(kuò)展模型(Extension model),這一層包含的類定義與特定的操作系統(tǒng)或技術(shù)有關(guān)。 </p><p> WMI是Microsoft擴(kuò)展CIM 2.0得到的面向Win32系統(tǒng)的擴(kuò)展模型。引用WMI類和屬性的形式是“擴(kuò)展前綴_類名稱.屬性名
23、稱”,例如Win32_ComputerSystem. Name,其中Win32是CIM模式cimv2名稱空間內(nèi)WMI擴(kuò)展類的前綴,ComputerSystem是類,Name是屬性。 </p><p> 編寫(xiě)WMI腳本的很大一部分工作涉及到讀取和設(shè)置屬性值。當(dāng)前,WMI提供的方法還很有限,但隨著時(shí)間的推移,相信WMI和CIM提供的方法都會(huì)越來(lái)越豐富。</p><p><b>
24、2 規(guī)劃設(shè)計(jì)</b></p><p> 本信息管理系統(tǒng)分為三個(gè)部分:</p><p> ?。保紫仁牵菍?duì)本機(jī)的基本信息的獲取,包括CPU、內(nèi)存等,以及網(wǎng)絡(luò)信息的獲取,包括域名、工作組等,最后還用CPU、內(nèi)存等使用情況的監(jiān)視?! 。玻浯?,是對(duì)本機(jī)的所有可用網(wǎng)絡(luò)適配器的設(shè)置,包括IP地址、子網(wǎng)掩碼、DNS服務(wù)器地址等等。</p><p> 3.然
25、后,是對(duì)本機(jī)的共享內(nèi)容的管理,包括共享文件夾的添加和取消,網(wǎng)絡(luò)服務(wù)的查看等。</p><p> 4.最后,是對(duì)所有本機(jī)網(wǎng)絡(luò)連接的監(jiān)控和統(tǒng)計(jì)。</p><p> 3 系統(tǒng)分析與設(shè)計(jì)方案</p><p> 3.1 信息管理系統(tǒng)的總體設(shè)計(jì)要點(diǎn) 1.本系統(tǒng)以實(shí)用為主,實(shí)現(xiàn)的都是用戶最常用的功能,簡(jiǎn)化了系統(tǒng)自帶的軟件的使用。</p><p>
26、; 2.本系統(tǒng)界面設(shè)計(jì)直觀,易用性強(qiáng)。</p><p> 3.2 系統(tǒng)各功能模塊</p><p> ?。?)本機(jī)基本信息獲取</p><p> 使用了PerformanceCounter和WMI等方式獲取系統(tǒng)信息,以及通過(guò)讀取注冊(cè)表讀取本機(jī)操作系統(tǒng)信息,通過(guò)線程的方式監(jiān)控系統(tǒng)性能。</p><p><b> 源碼:</
27、b></p><p> PerformanceCounter pc = new PerformanceCounter("Memory", "Available MBytes");</p><p> PerformanceCounter cpu = new PerformanceCounter("Processor", &
28、quot;% Processor Time", "_Total");</p><p> Thread m_thread;</p><p> [DllImport("IpHlpApi.dll")]</p><p> extern static public uint GetIfTable(byte[] pIfTa
29、ble, ref uint pdwSize, bool bOrder);</p><p> public Form1()</p><p><b> {</b></p><p> new Form2().Show();</p><p> InitializeComponent();</p><p
30、> RegistryKey rk;</p><p> DirectoryEntry root = new DirectoryEntry("WinNT:");</p><p> string strDomain = null, cpuid = null, meo = null;</p><p> foreach (DirectoryE
31、ntry Domain in root.Children)</p><p><b> {</b></p><p><b> //枚舉工作組或域</b></p><p> strDomain = strDomain + " " + Domain.Name;</p><p>&
32、lt;b> }</b></p><p> ManagementClass mClass = new ManagementClass("Win32_Processor");</p><p> ManagementObjectCollection moCollection = mClass.GetInstances();</p><
33、;p> foreach (ManagementObject mObject in moCollection)</p><p><b> {</b></p><p> cpuid += mObject["Name"].ToString() + " ";</p><p><b> }&
34、lt;/b></p><p> mClass = new ManagementClass("Win32_PhysicalMemory");</p><p> moCollection = mClass.GetInstances();</p><p> foreach (ManagementObject mObject in moCol
35、lection)</p><p><b> {</b></p><p> meo += mObject["Capacity"].ToString();</p><p><b> }</b></p><p> rk = Registry.LocalMachine.OpenS
36、ubKey("Software\\Microsoft\\Windows NT\\CurrentVersion");</p><p> label6.Text = System.Environment.MachineName;</p><p> label8.Text = System.Net.Dns.GetHostEntry("LocalHost"
37、;).HostName;</p><p> label9.Text = rk.GetValue("ProductName").ToString() + " " + rk.GetValue("CurrentVersion").ToString() + "." + rk.GetValue("CurrentBuildNumber
38、").ToString();</p><p> label10.Text = strDomain;</p><p> label11.Text = cpuid;</p><p> label12.Text = meo + " 字節(jié)";</p><p> progressBar1.Maximum = (in
39、t)(float.Parse(meo) / 1048576.0);</p><p> m_thread = new Thread(new ThreadStart(workr));</p><p> m_thread.IsBackground = true;</p><p> m_thread.Start();</p><p> Man
40、agementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");</p><p> ManagementObjectCollection moc = mc.GetInstances();</p><p> foreach (ManagementObject mo in moc)&l
41、t;/p><p><b> {</b></p><p> if ((bool)mo["IPEnabled"] == true)</p><p> comboBox1.Items.Add(mo["Description"].ToString());</p><p><b>
42、; }</b></p><p> comboBox1.Enabled = true;</p><p> mc = new ManagementClass("Win32_Service");</p><p> moc = mc.GetInstances();</p><p> foreach (Mana
43、gementObject mo in moc)</p><p><b> {</b></p><p> if (mo["StartName"].ToString() == "NT AUTHORITY\\NetworkService")</p><p> comboBox2.Items.Add(mo[
44、"Caption"].ToString());</p><p><b> }</b></p><p> comboBox2.Enabled = true;</p><p> mc.Dispose();</p><p> moc.Dispose();</p><p>
45、maskedTextBox1.AllowPromptAsInput = false;</p><p> private delegate void dfun();</p><p> private void workr() { while (true) { Thread.Sleep(500); work(); } }</p><p> private void
46、 work()</p><p><b> {</b></p><p> if (this.progressBar1.InvokeRequired && this.progressBar2.InvokeRequired)</p><p><b> {</b></p><p>&l
47、t;b> try</b></p><p><b> {</b></p><p> dfun df = new dfun(work);</p><p> this.Invoke(df);</p><p><b> }</b></p><p> ca
48、tch { };</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> this.progressBar1.Value = (int)this.pc.NextValue();</p
49、><p> this.label13.Text = this.progressBar1.Value.ToString() + "MB / " + this.progressBar1.Maximum.ToString() + "MB";</p><p> this.progressBar2.Value = (int)cpu.NextValue();&l
50、t;/p><p> this.label16.Text = DateTime.Now.ToString();</p><p><b> }</b></p><p><b> }</b></p><p> (2)網(wǎng)絡(luò)設(shè)置部分主要通過(guò)WMI獲取和設(shè)置本機(jī)網(wǎng)絡(luò)適配器的信息和設(shè)置,可以自動(dòng)獲取當(dāng)前可用的
51、適配器,同時(shí),能對(duì)不符合規(guī)范的的設(shè)置進(jìn)行提示。具體的源碼如下:</p><p> private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)</p><p><b> {</b></p><p> ManagementObjectSearcher
52、query = new</p><p> ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");</p><p> ManagementObjectCollection queryCollection =
53、 query.Get();</p><p> foreach (ManagementObject mo in queryCollection)</p><p><b> {</b></p><p> if (mo["Description"].ToString() == comboBox1.Text)</p>
54、;<p><b> {</b></p><p> string[] ipad = (string[])mo["IPAddress"];</p><p> label23.Text = ipad[0];</p><p> string[] subnets = (string[])mo["IPSu
55、bnet"];</p><p> label24.Text = subnets[0];</p><p> string[] defaultgateways = (string[])mo["DefaultIPGateway"];</p><p> if (defaultgateways != null)</p><
56、;p> label27.Text = defaultgateways[0];</p><p> else label27.Text = "";</p><p> label26.Text = mo["MACAddress"].ToString();</p><p> string[] dns = (string[
57、])mo["DNSServerSearchOrder"];</p><p> if (dns != null)</p><p> label28.Text = dns[0];</p><p> else if (dns == null)</p><p> label29.Text = "";&l
58、t;/p><p> else if (dns.Length == 2)</p><p> label29.Text = dns[1];</p><p> else { label29.Text = ""; }</p><p><b> }</b></p><p><b
59、> }</b></p><p><b> }</b></p><p><b> /*</b></p><p> private void button3_Click(object sender, EventArgs e)</p><p><b> {</b
60、></p><p> string[] mac = maskedTextBox5.Text.Split(':');</p><p> string pstr = "^[0-9a-fA-F]+$";</p><p> string ma="" ;</p><p> for (
61、int n = 0; n < 5; n++)</p><p> if (!Regex.IsMatch(mac[n],pstr))</p><p><b> {</b></p><p> MessageBox.Show("MAC地址為16進(jìn)制,即00~FF", "錯(cuò)誤");</p>
62、<p><b> goto L1;</b></p><p><b> }</b></p><p> else ma += mac[n]+":";</p><p> ma = ma.Substring(0, ma.Length - 1);</p><p> M
63、anagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");</p><p> ManagementObjectCollection moc = mc.GetInstances();</p><p> foreach (ManagementObject mo in moc)
64、</p><p><b> {</b></p><p> if ((bool)mo["IPEnabled"])</p><p><b> {</b></p><p> if (mo["Description"].ToString() == comboB
65、ox1.Text)</p><p><b> {</b></p><p> ManagementBaseObject newMAC = mo.GetMethodParameters("SetMACAddress");</p><p> newMAC["MACAddress"] = new strin
66、g[] { ma };</p><p> ManagementBaseObject setMAC = mo.InvokeMethod("SetMACAddress", newMAC, null);</p><p> label26.Text = mo["MACAddress"].ToString();</p><p>
67、mc.Dispose();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> L1: ;</b></p><p><b>
68、 }</b></p><p><b> */</b></p><p> private void button2_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> string pstr = "0
69、 .0 .0 .0";</p><p> string GateStr = "", DnsStr = "", DnsbStr = "";</p><p> bool gat, dn, dnb;</p><p> gat = false;</p><p> dn
70、 = false;</p><p> dnb = false;</p><p> string[] gate = maskedTextBox6.Text.Split('.');</p><p> string[] dns = maskedTextBox7.Text.Split('.');</p><p>
71、 string[] dnsb = maskedTextBox2.Text.Split('.');</p><p> if (!maskedTextBox6.Text.Equals(pstr))</p><p><b> {</b></p><p> for (int n = 0; n < 4; n++)</p
72、><p> if (int.Parse(gate[n]) > 255 || int.Parse(gate[n]) < 0)</p><p><b> {</b></p><p> MessageBox.Show("IP數(shù)值不對(duì)!數(shù)值為1~255", "錯(cuò)誤");</p><
73、;p><b> goto L4;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> GateStr += (gate[n].Trim() + &
74、quot;.");</p><p><b> }</b></p><p> GateStr = GateStr.Substring(0, GateStr.Length - 1);</p><p> gat = true;</p><p><b> }</b></p>
75、<p> if (!maskedTextBox7.Text.Equals(pstr))</p><p><b> {</b></p><p> for (int n = 0; n < 4; n++)</p><p> if (int.Parse(dns[n]) > 255 || int.Parse(gate[n])
76、 < 0)</p><p><b> {</b></p><p> MessageBox.Show("IP數(shù)值不對(duì)!數(shù)值為1~255", "錯(cuò)誤");</p><p><b> goto L4;</b></p><p><b> }&l
77、t;/b></p><p> for (int i = 0; i <= 3; i++)</p><p><b> {</b></p><p> DnsStr += (dns[i].Trim() + ".");</p><p><b> }</b></p&
78、gt;<p> DnsStr = DnsStr.Substring(0, DnsStr.Length - 1);</p><p> dn = true;</p><p><b> }</b></p><p> if (!maskedTextBox2.Text.Equals(pstr))</p><p&g
79、t;<b> {</b></p><p> for (int n = 0; n < 4; n++)</p><p> if (int.Parse(dnsb[n]) > 255 || int.Parse(gate[n]) < 0)</p><p><b> {</b></p><
80、p> MessageBox.Show("IP數(shù)值不對(duì)!數(shù)值為1~255", "錯(cuò)誤");</p><p><b> goto L4;</b></p><p><b> }</b></p><p> for (int i = 0; i <= 3; i++)</
81、p><p><b> {</b></p><p> DnsbStr += (dnsb[i].Trim() + ".");</p><p><b> }</b></p><p> DnsbStr = DnsbStr.Substring(0, DnsbStr.Length - 1
82、);</p><p> dnb = true;</p><p><b> }</b></p><p> ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");</p><p> Managem
83、entObjectCollection moc = mc.GetInstances();</p><p> foreach (ManagementObject mo in moc)</p><p><b> {</b></p><p> if ((bool)mo["IPEnabled"])</p><
84、;p><b> {</b></p><p> if (mo["Description"].ToString() == comboBox1.Text)</p><p><b> {</b></p><p> if (gat == true)</p><p><b
85、> {</b></p><p> ManagementBaseObject newGate = mo.GetMethodParameters("SetGateways");</p><p> newGate["DefaultIPGateway"] = new string[] { GateStr };</p>&
86、lt;p> ManagementBaseObject setGate = mo.InvokeMethod("SetGateways", newGate, null);</p><p> label27.Text = mo["DefaultIPGateway"].ToString();</p><p><b> }</b&g
87、t;</p><p> if (dn == true)</p><p><b> {</b></p><p> string[] temp = (string[])mo["DNSServerSearchOrder"];</p><p> ManagementBaseObject newDns
88、= mo.GetMethodParameters("SetDNSServerSearchOrder");</p><p> newDns["DNSServerSearchOrder"] = new string[] { DnsStr, temp[1] };</p><p> ManagementBaseObject setDns = mo.Inv
89、okeMethod("SetDNSServerSearchOrder", newDns, null);</p><p> temp = (string[])mo["DNSServerSearchOrder"];</p><p> label28.Text = temp[0];</p><p><b> }<
90、;/b></p><p> if (dnb == true)</p><p><b> {</b></p><p> string[] temp = (string[])mo["DNSServerSearchOrder"];</p><p> ManagementBaseObject n
91、ewDnsb = mo.GetMethodParameters("SetDNSServerSearchOrder");</p><p> newDnsb["DNSServerSearchOrder"] = new string[] { temp[1], DnsbStr };</p><p> ManagementBaseObject setDns
92、b = mo.InvokeMethod("SetDNSServerSearchOrder", newDnsb, null);</p><p> temp = (string[])mo["DNSServerSearchOrder"];</p><p> label29.Text = temp[1];</p><p><
93、b> }</b></p><p> mo.Dispose();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> string[] str =
94、 maskedTextBox1.Text.Split('.');</p><p> string[] str1 = maskedTextBox4.Text.Split('.');</p><p> ManagementClass mc1 = new ManagementClass("Win32_NetworkAdapterConfigurati
95、on");</p><p> ManagementObjectCollection moc1 = mc.GetInstances();</p><p> if (255 < int.Parse(str[0]) || 255 < int.Parse(str[1]) || 255 < int.Parse(str[2]) || 255 < int.Parse
96、(str[3]) || int.Parse(str[0]) < 1 || int.Parse(str[1]) < 0 || int.Parse(str[2]) < 0 || int.Parse(str[3]) < 1 ||</p><p> 255 < int.Parse(str1[0]) || 255 < int.Parse(str1[1]) || 255 < int
97、.Parse(str1[2]) || 255 < int.Parse(str1[3]) || int.Parse(str1[0]) < 1 || int.Parse(str1[1]) < 0 || int.Parse(str1[2]) < 0 || int.Parse(str1[3]) < 0) MessageBox.Show("IP數(shù)值不對(duì)!數(shù)值為1~255", "錯(cuò)誤&qu
98、ot;);</p><p><b> else</b></p><p> foreach (ManagementObject mo in moc1)</p><p><b> {</b></p><p> if ((bool)mo["IPEnabled"])</p&
99、gt;<p><b> {</b></p><p> if (mo["Description"].ToString() == comboBox1.Text)</p><p><b> {</b></p><p> string IPStr = "", subSt
100、r = "";</p><p> for (int i = 0; i <= 3; i++)</p><p><b> {</b></p><p> IPStr += (str[i].Trim() + ".");</p><p><b> }</b>
101、;</p><p> for (int i = 0; i <= 3; i++)</p><p><b> {</b></p><p> subStr += (str1[i].Trim() + ".");</p><p><b> }</b></p>&
102、lt;p> IPStr = IPStr.Substring(0, IPStr.Length - 1);</p><p> subStr = subStr.Substring(0, subStr.Length - 1);</p><p> ManagementBaseObject newIP = mo.GetMethodParameters("EnableStatic&
103、quot;);</p><p> newIP["IPAddress"] = new string[] { IPStr };</p><p> newIP["SubnetMask"] = new string[] { subStr };</p><p> ManagementBaseObject setIP = mo.In
104、vokeMethod("EnableStatic", newIP, null);</p><p> label23.Text = IPStr;</p><p> label24.Text = subStr;</p><p> mc.Dispose();</p><p><b> }</b>&l
105、t;/p><p><b> }</b></p><p><b> }</b></p><p><b> L4: ;</b></p><p><b> }</b></p><p> private void button4_Cl
106、ick(object sender, EventArgs e)</p><p><b> {</b></p><p> ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");</p><p> ManagementO
107、bjectCollection moc = wmi.GetInstances();</p><p> foreach (ManagementObject mo in moc)</p><p><b> {</b></p><p> //如果沒(méi)有啟用IP設(shè)置的網(wǎng)絡(luò)設(shè)備則跳過(guò) </p><p> if (mo[&
108、quot;Description"].ToString() != comboBox1.Text)</p><p><b> continue;</b></p><p> //重置DNS為空 </p><p> mo.InvokeMethod("SetDNSServerSearchOrder", null)
109、;</p><p> //開(kāi)啟DHCP </p><p> mo.InvokeMethod("EnableDHCP", null);</p><p><b> }</b></p><p><b> }</b></p><p><b>
110、 4 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</b></p><p><b> 4.1開(kāi)發(fā)環(huán)境工具</b></p><p> 基本系統(tǒng)的設(shè)計(jì)主要運(yùn)用C#與語(yǔ)言與WMI類結(jié)合而開(kāi)發(fā)。其開(kāi)發(fā)的主要環(huán)境包括:</p><p> 操作系統(tǒng):Windows 7</p><p> 集成開(kāi)發(fā)環(huán)境:Microsoft Visual Stu
111、dio 2010和.NET Framework 4.0</p><p> 使用環(huán)境: Windows 2K/XP以上和.NET Framework環(huán)境</p><p> 4.2 硬件環(huán)境 </p><p> 本系統(tǒng)運(yùn)行環(huán)境所需用到的環(huán)境為:硬件配置 :</p><p> CPU:intel core duo t6400 2.0G的
112、處理器;</p><p> 硬 盤(pán):160GB以上硬盤(pán);</p><p> 內(nèi) 存:2G DDR內(nèi)存;</p><p> 顯 卡:NVIDIA Geforce 9600M GS 512M顯存顯卡</p><p> 軟件環(huán)境:WINDOWS XP、Visual Studio 2010、.NET Framework4.0等。<
113、/p><p> 4.3網(wǎng)站功能模塊的測(cè)試</p><p> 圖1 本機(jī)信息獲取 </p><p><b> 圖2 網(wǎng)絡(luò)設(shè)置</b></p><p><b> 圖3 共享設(shè)置</b></p><p><b> 圖4 網(wǎng)絡(luò)監(jiān)控</b></
114、p><p><b> 5 總 結(jié)</b></p><p> 5.1 課程設(shè)計(jì)總結(jié)</p><p> 本課程設(shè)計(jì)實(shí)現(xiàn)了簡(jiǎn)單的本機(jī)網(wǎng)絡(luò)系統(tǒng)的管理功能,經(jīng)過(guò)細(xì)心的調(diào)試和排錯(cuò)解決了絕大部分的問(wèn)題。但幾乎每一個(gè)計(jì)算機(jī)程序都會(huì)有這樣那樣的不足,尤其是未經(jīng)過(guò)精心維護(hù)的非商業(yè)軟件。本管理系統(tǒng)程序?qū)τ诔跎娲祟I(lǐng)域的畢業(yè)設(shè)計(jì)課題來(lái)說(shuō),尤其在開(kāi)始初期,感覺(jué)系統(tǒng)調(diào)用復(fù)
115、雜,難以控制,因此至今還有許多未能解決的缺陷。</p><p> 目前本管理系統(tǒng)還有待完善的功能如下:</p><p> 沒(méi)有做到每個(gè)進(jìn)程的網(wǎng)絡(luò)流量的實(shí)時(shí)監(jiān)控;</p><p><b> 沒(méi)有實(shí)現(xiàn)進(jìn)程管理;</b></p><p> 沒(méi)有考慮到安全問(wèn)題。</p><p> 盡管課程設(shè)計(jì)到
116、現(xiàn)在已接近尾聲,但是對(duì)于上述的缺陷,本人還會(huì)不斷對(duì)系統(tǒng)進(jìn)一步的完善它,期望在今后的日子里憑借自身的技術(shù)把系統(tǒng)做成一套深受歡迎的系統(tǒng)設(shè)置軟件。</p><p> 5.2 經(jīng)驗(yàn)和感想 </p><p> 基于C#和WMI天程序作為課程設(shè)計(jì),是本人目前做過(guò)的最大的程序。</p><p> 平時(shí)自己也常到其它系統(tǒng)優(yōu)化軟件,因此,自己也曾想過(guò)要制作一款自己的系
117、統(tǒng)管理軟件。</p><p> 學(xué)習(xí)該平臺(tái)背景和功能的時(shí)間遠(yuǎn)遠(yuǎn)超出了我想象的時(shí)間。在學(xué)習(xí)期間,本人還通過(guò)網(wǎng)上的各種C#源碼進(jìn)行學(xué)習(xí)與研究,我原以為這樣的設(shè)計(jì)水平將無(wú)法完成設(shè)計(jì),但當(dāng)掌握了大部分應(yīng)用技巧時(shí),剩下的系統(tǒng)思路的設(shè)計(jì)就顯得不是最大的障礙了。</p><p> 我在2周內(nèi)寫(xiě)完這個(gè)程序,經(jīng)過(guò)了很多次的調(diào)試,終于完成了現(xiàn)在的程序。原先認(rèn)為不可能的事,我發(fā)現(xiàn),如果有不畏困難的信心和肯鉆
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)網(wǎng)絡(luò)管理技術(shù)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---網(wǎng)絡(luò)信息管理系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 《計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)》
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---網(wǎng)絡(luò)設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)組建課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論