计算机网络课程设计网络信息管理系统设计_第1页
计算机网络课程设计网络信息管理系统设计_第2页
计算机网络课程设计网络信息管理系统设计_第3页
计算机网络课程设计网络信息管理系统设计_第4页
计算机网络课程设计网络信息管理系统设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课 程 设 计报告学年学期 2010-2011学年第二学期课程名称 计算机网络课程设计院 系 计算机系专 业 网络工程学 号 姓 名 指导教师 二一一 年 六 月 三十 日 摘 要本机网络信息管理器提供了有关计算机性能的信息,并显示了计算机上主要设备信息;如果连接到网络,那么还可以查看网络状态并迅速了解网络是如何工作的。它的用户界面提供了设置网络信息的选项,其下还有具体的内容设置,而且这里可以查看到当前系统的cpu使用比率、内存等数据,默认设置下系统每隔两秒钟对数据进行1次自动更新。现在是网络的社会,在应用网络的同时也要对计算机的信息进行保护,因而需要进行本地计算机网络信息管理,使得我们更好

2、的进行计算机的运用。以及对信息的管理和保护。因而有了这样的一个课程设计。一绪论 本文所介绍的网络信息管理系统是基于开放的c#应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的反映本机的网络设置状况,易于维护和更新,其运行所需环境及其工作流程和各个功能控件的工作原理将在本文依次介绍,并且文中提供了部分程序源代码。1 ip/tcp协议常识(1)ip、tcp协议的特点:tcp/ip(transmission control protocol/internet protocol)是传输控制协议/网际协议的缩写, tcp/ip是当今网络互联的核心协议。tcp/ip

3、协议的体系结构共有四个层次,即应用层、传输层、网络互联层和网络接口层。ip协议的作用:第一,它是网络层的协议,提供互联网上数据传输的统一格式。第二,提供不可靠的无连接的服务。第三,定义了互联网上的传输数据的基本单元,提供了供路由选择的信息,没有差错校验和处理的机制。tcp协议的功能:差错控制可靠性、面向连接、分段(segment)、端口号。tcp是传输控制协议,是面向连接的提供了一种可靠的传输服务,它用三次握手和滑动窗口机制来保证传输的可靠性,及进行流量控制。 tcp/ip协议具有以下特点:协议标准具有开放性,其独立于特定的计算机硬件及操作系统,可以免费使用。统一分配网络地址,使得每个tcp/

4、ip 设备在网络中都具有唯一的ip地址。实现了高层协议的标准化,能为用户提供多种可靠的服务。(2)tcp/ip协议进行传输数据传输的过程:应用程序为了传输数据会调用tcp,将数据和对应的参数传给tcp,将tcp 数据包封装在ip包内,通过网络送给目的tcp。接收方tcp在接收到数据后通知上层应用程序,tcp将保证接收数据的正确性。在实现tcp的主机上,tcp可以被看成是一个模块,和文件系统区别不大,tcp 也可以调用一些操作系统的功能,tcp不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。tcp只是调用ip接口,向tcp提供所有tcp需要的服务。(3)端口号:有的时候,一个ip地址

5、不能完整的标识一台服务器,这是应为一台物理性的计算机同时运行着多个应用程序,这就需要我们来区别同一台机子上的不同的服务,所以就在传输层和应用层上设置接口,就是 端口。端口实际是一个16位长的 地址,他的范围是065535之间,其中01023是熟知端口,主要是给提供服务的应用程序使用,这些端口是所有应用进程都只道的,102465535为一般端口,也称动态端口、连接端口,用来随时分配要求通信的个客户端应用程序。在数据传输过程中,各种服务器不断的检测分配给他的端口,一边发现要求和他通信的客户端。2windows management instrumentation,windows 管理规范wmi(w

6、indows management instrumentation,windows 管理规范)是一项核心的 windows 管理技术;用户可以使用 wmi 管理本地和远程计算机。windows 2k/xp和windows 98 都支持wmi;如果为nt 4.0和windows 95加上了 service pack 4或更高版本,n wmit 4.0和win95也支持wmi。因此,用wmi进行远程管理时,并非一定要用windows 2k/xp(当然,如果wmi脚本在一台没有性能监视器的win9x机器上运行,就不能在远程win9x系统上查询windows 2k/xp的性能监视器。 如前所述,wmi

7、允许通过一个公共的接口访问多种操作系统构成单元,因此不必分别对待各种底层接口或所谓的“提供者”。利用wmi可以高效地管理远程和本地的计算机;与此相对,并非所有的windows 2k/xp命令行工具都支持远程运行。 wmi是wbem模型的一种实现。wbem即web-based enterprise management,或基于web的企业管理,wbem由dmtf(distributed management task force,分布式管理任务组)在许多厂商的帮助下创立,包括compaq、sun、microsoft等。wbem的目标是,为管理企业环境开发一个标准的接口集。wbem模型最关键的部分

8、是它的数据模型(或描述和定义对象的方式)、编码规范(encoding specification),以及在客户端和服务器端之间传输数据的模式。 wbem的数据模型是cim(common information model,公共信息模型)。cim是一个用来命名计算机的物理和逻辑单元的标准的命名系统(或称为命名模式),例如硬盘的逻辑分区、正在运行的应用的一个实例,或者一条电缆。 cim是一个面向对象的模型,使用一组面向对象的术语进行描述。cim包含类(class),类是被管理单元的模板。类的实例称为对象(object),对象代表着底层系统的一个具体单元。名称空间(namespace)是一个类的集合

9、,每个名称空间面向一个特定的管理领域。类包含属性(property)和方法(method)。 cim分三层。第一层是核心模型(core model),这一层包含的类定义对于所有管理领域来说都是共同的。第二层是公共模型(common model),这一层包含的类定义对于特定的管理领域来说是公共的,但与具体的操作系统和系统设计无关。第三层是扩展模型(extension model),这一层包含的类定义与特定的操作系统或技术有关。 wmi是microsoft扩展cim 2.0得到的面向win32系统的扩展模型。引用wmi类和属性的形式是“扩展前缀_类名称.属性名称”,例如win32_computer

10、system. name,其中win32是cim模式cimv2名称空间内wmi扩展类的前缀,computersystem是类,name是属性。 编写wmi脚本的很大一部分工作涉及到读取和设置属性值。当前,wmi提供的方法还很有限,但随着时间的推移,相信wmi和cim提供的方法都会越来越丰富。二 规划设计本信息管理系统分为三个部分:首先是,是对本机的基本信息的获取,包括cpu、内存等,以及网络信息的获取,包括域名、工作组等,最后还用cpu、内存等使用情况的监视。其次,是对本机的所有可用网络适配器的设置,包括ip地址、子网掩码、dns服务器地址等等。3.然后,是对本机的共享内容的管理,包括共享文件

11、夹的添加和取消,网络服务的查看等。4.最后,是对所有本机网络连接的监控和统计。三系统分析与设计方案1信息管理系统的总体设计要点 1.本系统以实用为主,实现的都是用户最常用的功能,简化了系统自带的软件的使用。2.本系统界面设计直观,易用性强2系统各功能模块(1)本机基本信息获取使用了performancecounter和wmi等方式获取系统信息,以及通过读取注册表读取本机操作系统信息,通过线程的方式监控系统性能。源码:performancecounter pc = new performancecounter("memory", "available mbytes&

12、quot;); performancecounter cpu = new performancecounter("processor", "% processor time", "_total"); thread m_thread; dllimport("iphlpapi.dll") extern static public uint getiftable(byte piftable, ref uint pdwsize, bool border); public form1() new form2().show()

13、; initializecomponent(); registrykey rk; directoryentry root = new directoryentry("winnt:"); string strdomain = null, cpuid = null, meo = null; foreach (directoryentry domain in root.children) /枚举工作组或域 strdomain = strdomain + " " + domain.name; managementclass mclass = new manage

14、mentclass("win32_processor"); managementobjectcollection mocollection = mclass.getinstances(); foreach (managementobject mobject in mocollection) cpuid += mobject"name".tostring() + " " mclass = new managementclass("win32_physicalmemory"); mocollection = mclas

15、s.getinstances(); foreach (managementobject mobject in mocollection) meo += mobject"capacity".tostring(); rk = registry.localmachine.opensubkey("softwaremicrosoftwindows ntcurrentversion"); label6.text = system.environment.machinename; label8.text = system.net.dns.gethostentry(&q

16、uot;localhost").hostname; label9.text = rk.getvalue("productname").tostring() + " " + rk.getvalue("currentversion").tostring() + "." + rk.getvalue("currentbuildnumber").tostring(); label10.text = strdomain; label11.text = cpuid; label12.text = m

17、eo + " 字节" progressbar1.maximum = (int)(float.parse(meo) / 1048576.0); m_thread = new thread(new threadstart(workr); m_thread.isbackground = true; m_thread.start(); managementclass mc = new managementclass("win32_networkadapterconfiguration"); managementobjectcollection moc = mc.

18、getinstances(); foreach (managementobject mo in moc) if (bool)mo"ipenabled" = true) combobox1.items.add(mo"description".tostring(); combobox1.enabled = true; mc = new managementclass("win32_service"); moc = mc.getinstances(); foreach (managementobject mo in moc) if (mo&

19、quot;startname".tostring() = "nt authoritynetworkservice") combobox2.items.add(mo"caption".tostring(); combobox2.enabled = true; mc.dispose(); moc.dispose(); maskedtextbox1.allowpromptasinput = false;private delegate void dfun(); private void workr() while (true) thread.slee

20、p(500); work(); private void work() if (gressbar1.invokerequired && gressbar2.invokerequired) try dfun df = new dfun(work); this.invoke(df); catch ; else gressbar1.value = (int)this.pc.nextvalue(); this.label13.text = gressbar1.value.tostring() + "mb / &q

21、uot; + gressbar1.maximum.tostring() + "mb" gressbar2.value = (int)cpu.nextvalue(); this.label16.text = datetime.now.tostring(); (2)网络设置部分主要通过wmi获取和设置本机网络适配器的信息和设置,可以自动获取当前可用的适配器,同时,能对不符合规范的的设置进行提示。具体的源码如下: private void combobox1_selectionchangecommitted(object sender, event

22、args e) managementobjectsearcher query = new managementobjectsearcher("select * from win32_networkadapterconfiguration where ipenabled = 'true'"); managementobjectcollection querycollection = query.get(); foreach (managementobject mo in querycollection) if (mo"description"

23、;.tostring() = combobox1.text) string ipad = (string)mo"ipaddress" label23.text = ipad0; string subnets = (string)mo"ipsubnet" label24.text = subnets0; string defaultgateways = (string)mo"defaultipgateway" if (defaultgateways != null) label27.text = defaultgateways0; el

24、se label27.text = "" label26.text = mo"macaddress".tostring(); string dns = (string)mo"dnsserversearchorder" if (dns != null) label28.text = dns0; else if (dns = null) label29.text = "" else if (dns.length = 2) label29.text = dns1; else label29.text = "&q

25、uot; /* private void button3_click(object sender, eventargs e) string mac = maskedtextbox5.text.split(':'); string pstr = "0-9a-fa-f+$" string ma="" ; for (int n = 0; n < 5; n+) if (!regex.ismatch(macn,pstr) messagebox.show("mac地址为16进制,即00ff", "错误")

26、; goto l1; else ma += macn+":" ma = ma.substring(0, ma.length - 1); managementclass mc = new managementclass("win32_networkadapterconfiguration"); managementobjectcollection moc = mc.getinstances(); foreach (managementobject mo in moc) if (bool)mo"ipenabled") if (mo&quo

27、t;description".tostring() = combobox1.text) managementbaseobject newmac = mo.getmethodparameters("setmacaddress"); newmac"macaddress" = new string ma ; managementbaseobject setmac = mo.invokemethod("setmacaddress", newmac, null); label26.text = mo"macaddress&q

28、uot;.tostring(); mc.dispose(); l1: ; */ private void button2_click(object sender, eventargs e) string pstr = "0 .0 .0 .0" string gatestr = "", dnsstr = "", dnsbstr = "" bool gat, dn, dnb; gat = false; dn = false; dnb = false; string gate = maskedtextbox6.text.

29、split('.'); string dns = maskedtextbox7.text.split('.'); string dnsb = maskedtextbox2.text.split('.'); if (!maskedtextbox6.text.equals(pstr) for (int n = 0; n < 4; n+) if (int.parse(gaten) > 255 | int.parse(gaten) < 0) messagebox.show("ip数值不对!数值为1255", &quo

30、t;错误"); goto l4; else gatestr += (gaten.trim() + "."); gatestr = gatestr.substring(0, gatestr.length - 1); gat = true; if (!maskedtextbox7.text.equals(pstr) for (int n = 0; n < 4; n+) if (int.parse(dnsn) > 255 | int.parse(gaten) < 0) messagebox.show("ip数值不对!数值为1255"

31、, "错误"); goto l4; for (int i = 0; i <= 3; i+) dnsstr += (dnsi.trim() + "."); dnsstr = dnsstr.substring(0, dnsstr.length - 1); dn = true; if (!maskedtextbox2.text.equals(pstr) for (int n = 0; n < 4; n+) if (int.parse(dnsbn) > 255 | int.parse(gaten) < 0) messagebox.show

32、("ip数值不对!数值为1255", "错误"); goto l4; for (int i = 0; i <= 3; i+) dnsbstr += (dnsbi.trim() + "."); dnsbstr = dnsbstr.substring(0, dnsbstr.length - 1); dnb = true; managementclass mc = new managementclass("win32_networkadapterconfiguration"); managementobjectco

33、llection moc = mc.getinstances(); foreach (managementobject mo in moc) if (bool)mo"ipenabled") if (mo"description".tostring() = combobox1.text) if (gat = true) managementbaseobject newgate = mo.getmethodparameters("setgateways"); newgate"defaultipgateway" = ne

34、w string gatestr ; managementbaseobject setgate = mo.invokemethod("setgateways", newgate, null); label27.text = mo"defaultipgateway".tostring(); if (dn = true) string temp = (string)mo"dnsserversearchorder" managementbaseobject newdns = mo.getmethodparameters("setd

35、nsserversearchorder"); newdns"dnsserversearchorder" = new string dnsstr, temp1 ; managementbaseobject setdns = mo.invokemethod("setdnsserversearchorder", newdns, null); temp = (string)mo"dnsserversearchorder" label28.text = temp0; if (dnb = true) string temp = (str

36、ing)mo"dnsserversearchorder" managementbaseobject newdnsb = mo.getmethodparameters("setdnsserversearchorder"); newdnsb"dnsserversearchorder" = new string temp1, dnsbstr ; managementbaseobject setdnsb = mo.invokemethod("setdnsserversearchorder", newdnsb, null);

37、 temp = (string)mo"dnsserversearchorder" label29.text = temp1; mo.dispose(); string str = maskedtextbox1.text.split('.'); string str1 = maskedtextbox4.text.split('.'); managementclass mc1 = new managementclass("win32_networkadapterconfiguration"); managementobject

38、collection moc1 = mc.getinstances(); if (255 < int.parse(str0) | 255 < int.parse(str1) | 255 < int.parse(str2) | 255 < int.parse(str3) | int.parse(str0) < 1 | int.parse(str1) < 0 | int.parse(str2) < 0 | int.parse(str3) < 1 | 255 < int.parse(str10) | 255 < int.parse(str1

39、1) | 255 < int.parse(str12) | 255 < int.parse(str13) | int.parse(str10) < 1 | int.parse(str11) < 0 | int.parse(str12) < 0 | int.parse(str13) < 0) messagebox.show("ip数值不对!数值为1255", "错误"); else foreach (managementobject mo in moc1) if (bool)mo"ipenabled"

40、) if (mo"description".tostring() = combobox1.text) string ipstr = "", substr = "" for (int i = 0; i <= 3; i+) ipstr += (stri.trim() + "."); for (int i = 0; i <= 3; i+) substr += (str1i.trim() + "."); ipstr = ipstr.substring(0, ipstr.length - 1); substr = substr.substring(0, substr.length - 1); managementbaseobject newip = mo.getmethodparameters("enablestatic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论