1、计算机网络课程设计滨江学院课 程 设 计报告学年学期 2010-2011学年第二学期课程名称 计算机网络课程设计 院 系 计算机系 专 业 网络工程 学 号 姓 名 指导教师 二一一 年 六 月 三十 日 摘 要本机网络信息管理器提供了有关计算机性能的信息,并显示了计算机上主要设备信息;如果连接到网络,那么还可以查看网络状态并迅速了解网络是如何工作的。它的用户界面提供了设置网络信息的选项,其下还有具体的内容设置,而且这里可以查看到当前系统的CPU使用比率、内存等数据,默认设置下系统每隔两秒钟对数据进行1次自动更新。现在是网络的社会,在应用网络的同时也要对计算机的信息进行保护,因而需要进行本地计
2、算机网络信息管理,使得我们更好的进行计算机的运用。以及对信息的管理和保护。因而有了这样的一个课程设计。一绪论 本文所介绍的网络信息管理系统是基于开放的C#应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的反映本机的网络设置状况,易于维护和更新,其运行所需环境及其工作流程和各个功能控件的工作原理将在本文依次介绍,并且文中提供了部分程序源代码。1 IP/TCP协议常识(1)IP、TCP协议的特点:TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议/网际协议的缩写, TCP/IP是当今网
3、络互联的核心协议。TCP/IP协议的体系结构共有四个层次,即应用层、传输层、网络互联层和网络接口层。IP协议的作用:第一,它是网络层的协议,提供互联网上数据传输的统一格式。第二,提供不可靠的无连接的服务。第三,定义了互联网上的传输数据的基本单元,提供了供路由选择的信息,没有差错校验和处理的机制。TCP协议的功能:差错控制可靠性、面向连接、分段(Segment)、端口号。TCP是传输控制协议,是面向连接的提供了一种可靠的传输服务,它用三次握手和滑动窗口机制来保证传输的可靠性,及进行流量控制。 TCP/IP协议具有以下特点:协议标准具有开放性,其独立于特定的计算机硬件及操作系统,可以免费使用。统一
4、分配网络地址,使得每个TCP/IP 设备在网络中都具有唯一的IP地址。实现了高层协议的标准化,能为用户提供多种可靠的服务。(2)TCP/IP协议进行传输数据传输的过程:应用程序为了传输数据会调用TCP,将数据和对应的参数传给TCP,将TCP 数据包封装在IP包内,通过网络送给目的TCP。接收方TCP在接收到数据后通知上层应用程序,TCP将保证接收数据的正确性。在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP 也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。TCP只是调用IP接口,向TCP提供所有TCP需要的服务。(3)
5、端口号:有的时候,一个ip地址不能完整的标识一台服务器,这是应为一台物理性的计算机同时运行着多个应用程序,这就需要我们来区别同一台机子上的不同的服务,所以就在传输层和应用层上设置接口,就是 端口。端口实际是一个16位长的 地址,他的范围是065535之间,其中01023是熟知端口,主要是给提供服务的应用程序使用,这些端口是所有应用进程都只道的,102465535为一般端口,也称动态端口、连接端口,用来随时分配要求通信的个客户端应用程序。在数据传输过程中,各种服务器不断的检测分配给他的端口,一边发现要求和他通信的客户端。2Windows Management Instrumentation,Wi
6、ndows 管理规范WMI(Windows 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的
7、性能监视器。 如前所述,WMI允许通过一个公共的接口访问多种操作系统构成单元,因此不必分别对待各种底层接口或所谓的“提供者”。利用WMI可以高效地管理远程和本地的计算机;与此相对,并非所有的Windows 2K/XP命令行工具都支持远程运行。 WMI是WBEM模型的一种实现。WBEM即Web-Based Enterprise Management,或基于Web的企业管理,WBEM由DMTF(Distributed Management Task Force,分布式管理任务组)在许多厂商的帮助下创立,包括Compaq、Sun、Microsoft等。WBEM的目标是,为管理企业环境开发一个标准的接
8、口集。WBEM模型最关键的部分是它的数据模型(或描述和定义对象的方式)、编码规范(Encoding Specification),以及在客户端和服务器端之间传输数据的模式。 WBEM的数据模型是CIM(Common Information Model,公共信息模型)。CIM是一个用来命名计算机的物理和逻辑单元的标准的命名系统(或称为命名模式),例如硬盘的逻辑分区、正在运行的应用的一个实例,或者一条电缆。 CIM是一个面向对象的模型,使用一组面向对象的术语进行描述。CIM包含类(Class),类是被管理单元的模板。类的实例称为对象(Object),对象代表着底层系统的一个具体单元。名称空间(Na
9、mespace)是一个类的集合,每个名称空间面向一个特定的管理领域。类包含属性(Property)和方法(Method)。 CIM分三层。第一层是核心模型(Core Model),这一层包含的类定义对于所有管理领域来说都是共同的。第二层是公共模型(Common Model),这一层包含的类定义对于特定的管理领域来说是公共的,但与具体的操作系统和系统设计无关。第三层是扩展模型(Extension model),这一层包含的类定义与特定的操作系统或技术有关。 WMI是Microsoft扩展CIM 2.0得到的面向Win32系统的扩展模型。引用WMI类和属性的形式是“扩展前缀_类名称.属性名称”,例
10、如Win32_ComputerSystem. 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); P
12、erformanceCounter 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(); InitializeComponent(); RegistryKey rk; DirectoryEntry r
13、oot = new DirectoryEntry(WinNT:); string strDomain = null, cpuid = null, meo = null; foreach (DirectoryEntry Domain in root.Children) /枚举工作组或域 strDomain = strDomain + + Domain.Name; ManagementClass mClass = new ManagementClass(Win32_Processor); ManagementObjectCollection moCollection = mClass.GetIns
14、tances(); foreach (ManagementObject mObject in moCollection) cpuid += mObjectName.ToString() + ; mClass = new ManagementClass(Win32_PhysicalMemory); moCollection = mClass.GetInstances(); foreach (ManagementObject mObject in moCollection) meo += mObjectCapacity.ToString(); rk = Registry.LocalMachine.
15、OpenSubKey(SoftwareMicrosoftWindows NTCurrentVersion); label6.Text = System.Environment.MachineName; label8.Text = System.Net.Dns.GetHostEntry(LocalHost).HostName; label9.Text = rk.GetValue(ProductName).ToString() + + rk.GetValue(CurrentVersion).ToString() + . + rk.GetValue(CurrentBuildNumber).ToStr
16、ing(); label10.Text = strDomain; label11.Text = cpuid; label12.Text = meo + 字节; 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_NetworkAdapterConfi
17、guration); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) if (bool)moIPEnabled = true) comboBox1.Items.Add(moDescription.ToString(); comboBox1.Enabled = true; mc = new ManagementClass(Win32_Service); moc = mc.GetInstances(); foreach (ManagementObject mo in m
18、oc) if (moStartName.ToString() = NT AUTHORITYNetworkService) comboBox2.Items.Add(moCaption.ToString(); comboBox2.Enabled = true; mc.Dispose(); moc.Dispose(); maskedTextBox1.AllowPromptAsInput = false;private delegate void dfun(); private void workr() while (true) Thread.Sleep(500); work(); private v
19、oid work() if (this.progressBar1.InvokeRequired & this.progressBar2.InvokeRequired) try dfun df = new dfun(work); this.Invoke(df); catch ; else this.progressBar1.Value = (int)this.pc.NextValue(); this.label13.Text = this.progressBar1.Value.ToString() + MB / + this.progressBar1.Maximum.ToString() + M
20、B; this.progressBar2.Value = (int)cpu.NextValue(); this.label16.Text = DateTime.Now.ToString(); (2)网络设置部分主要通过WMI获取和设置本机网络适配器的信息和设置,可以自动获取当前可用的适配器,同时,能对不符合规范的的设置进行提示。具体的源码如下: private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e) ManagementObjectSearcher query = new ManagementObj
21、ectSearcher(SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE); ManagementObjectCollection queryCollection = query.Get(); foreach (ManagementObject mo in queryCollection) if (moDescription.ToString() = comboBox1.Text) string ipad = (string)moIPAddress; label23.Text = ipad0; stri
22、ng subnets = (string)moIPSubnet; label24.Text = subnets0; string defaultgateways = (string)moDefaultIPGateway; if (defaultgateways != null) label27.Text = defaultgateways0; else label27.Text = ; label26.Text = moMACAddress.ToString(); string dns = (string)moDNSServerSearchOrder; if (dns != null) lab
23、el28.Text = dns0; else if (dns = null) label29.Text = ; else if (dns.Length = 2) label29.Text = dns1; else label29.Text = ; /* 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
24、.IsMatch(macn,pstr) MessageBox.Show(MAC地址为16进制,即00FF, 错误); 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)m
25、oIPEnabled) if (moDescription.ToString() = comboBox1.Text) ManagementBaseObject newMAC = mo.GetMethodParameters(SetMACAddress); newMACMACAddress = new string ma ; ManagementBaseObject setMAC = mo.InvokeMethod(SetMACAddress, newMAC, null); label26.Text = moMACAddress.ToString(); mc.Dispose(); L1: ; *
26、/ 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.Split(.); string dns = maskedTextBox7.Text.Split(.); string dnsb = maskedTextBox2.Te
27、xt.Split(.); if (!maskedTextBox6.Text.Equals(pstr) for (int n = 0; n 255 | int.Parse(gaten) 0) MessageBox.Show(IP数值不对!数值为1255, 错误); 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 255
28、 | int.Parse(gaten) 0) MessageBox.Show(IP数值不对!数值为1255, 错误); 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 255 | int.Parse(gaten) 0) MessageBox.Show(IP数值不对!数值为1255, 错
29、误); 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); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) if (bool)moIPEnabled) if (moDescription.ToString() = comboBox1.Text) if (gat = true) ManagementBaseObject newGate = mo.GetMethodParameters(SetGateways); newGateDefaultI
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1