VisualC#之制作IP设置程序Word文档格式.docx
- 文档编号:17963999
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:34
- 大小:267.16KB
VisualC#之制作IP设置程序Word文档格式.docx
《VisualC#之制作IP设置程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《VisualC#之制作IP设置程序Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
主机号则用于标识在该网络上的一台特定的主机。
位于相同物理网络上的所有主机具有相同的网络号,如图18-1所示。
图18-1IP地址的表示
2.IP地址的分类
为了适应于不同规模的物理网络,一般将IP地址分为A、B、C、D、E五类,但在Internet上可分配使用的IP地址实际上只有A、B、C三类。
这三类地址统称为单目传送(unicast)地址,因为这些地址通常只能分配给唯一的一台主机。
D类地址被称为组播(multicast)地址,组播地址可用于视频广播或视频点播系统,而E类地址尚未使用,保留给将来的特殊用途。
不同类别的IP地址的网络号和主机号的长度划分不同,它们所能识别购物理网络的数量不同,每个物理网络所能容纳的主机个数也不同。
如图18-2所示。
图18-2IP地址格式与分类
A类地址的第一个字节的最高位为“0”,网络号占1个字节(8位),主机号占3个字节(24位)。
A类地址可识别128个不同的物理网络或虚拟网,每个A类子网可容纳1600万台主机。
B类地址的第一个字节的前2位是“10”,网络号占2个字节(16位),主机号占2个字节(16位)。
B类地址可识别16384个不同的物理网络或虚拟网,每个B类子网可容纳65536台主机。
C类地址的第一个字节的前3位为“110”,网络号占3个字节(24位),主机号占1个字节(8位)。
C类地址可识别200万个不同的物理网络或虚拟网,每个C类子网内最多有256台主机。
D类地址的前4位为“1110”,E类地址的前5位为“11110”。
根据A、B、C、D、E的高位数值,可以总结出它们的第一个字节的取值范围,如A类地址的第一个字节的数值在1~126之间。
表18-1给出了每种地址类别第一个字节的取值范围。
表18-1各类IP地址的取值范围
地址类别
高位
第一个字节的十进制数
A
1~126
B
10
128~191
C
110
192~223
D
1110
224~239
E
11110
240~254
从表18-1可以看到,原本属于A类地址范围的IP地址127.0.0.0~127.255.255.255却没有包含在A类地址之中。
这是因为,任何一个以数字127开头的IP地址(127.X.X.X)都叫做回送地址(loopbackaddress),它是一个保留地址,最常见的一种为127.0.0.1。
每台主机上对应于IP地址127.0.0.1有个接口,称为回送接口(loopbackinterface)。
IP协议规定,当任何程序向回送地址发送数据包时,计算机上的协议软件不会把该数据包向网络上发送,而是把数据直接发送给本主机。
因此,网络号等于127的数据包不能出现在任何网络上,主机和路由器不能为该地址广播任何寻径信息。
3.子网
在广播式的网络技术中,广播信息会在同一个广播域(同一个物理网络或同一个逻辑网络)中传播。
因此,在一个广播域中,如果网络站点过多,大量的广播信息在网上传送,会导致网络的性能急剧下降。
为此,在实际的网络设计中,要求属于同一个广播域的网络规模不能太大,主机数不能过多。
而A类和B类地址的每个网络都包容了大量的主机地址。
一个包容1600万台(A类)或6万多台(B类)主机的单一物理网络几乎是不可能实现的。
另外,它们的主机号部分也是很浪费的。
在Internet迅速发展的今天,IP地址已经成为极为珍贵的资源。
为了解决以上两个问题,提出了子网(subnet)和掩码(mask)的概念。
通过将IP地址的主机号部分进一步划分为子网号和主机号的方法,把一个包含大量主机的网络划分成许多小的网络,每个小的网络就是一个子网。
每个子网都是一个独立的逻辑网络、独立的广播域。
它可以隔离广播信息,缩小广播域,以提高网络性能。
划分子网后使网络便于管理和隔离故障,提高网络的可靠性,而且还可以更有效地利用IP地址空间。
4.掩码
掩码用来确定如何划分IP地址的网络号、子网号和主机号,它可将主机地址部分进一步划分为子网地址和主机地址。
掩码是一个与IP地址相对应的32位数字。
它和IP地址一样也用4个点分十进制数表示,如255.255.255.0。
掩码的一些位为1,另一些位为0。
二进制位为“1”所对应的IP地址位是网络号和子网号。
掩码的二进制位为“0”所对应的IP地址位是主机号。
这样通过掩码将IP地址中的主机地址段再分为子网号和主机号,使网络号的位数加长,其结果是不但把大网划分成了若干个小网,而且还增加了网络的个数。
这时的网络地址应为网络号加子网号,它们共同标识一个网络。
如IP地址168.23.18.123,原本是一个B类地址,它的前两个字节是网络号,标准掩码255.255.0.0,网络地址是168.23.0.0。
如果掩码设置为255.255.255.0,则第3个字节变为子网号,第4个字节仍为主机号,其网络地址为168.23.18.0。
原则上掩码的0和1可以任意分布,不过一般在设计时,把掩码开始连续的几位设为1。
可以认为掩码是对地址分类的扩展,它加大了地址分配的灵活性。
A、B、C类地址各自的标准掩码,分别为255.0.0.0、255.255.0.0和255.255.255.0。
这三类地址都可以用掩码将其主机号部分再进行划分,即使是C类也不例外。
如一个C类网络地址202.112.42.0,可以利用掩码255.255.255.224,把该网络分为8个子网,每个子网的网络地址是:
202.112.42.0,202.112.42.32,202.112.42.64,202.112.42.96,202.112.42.128,202.112.42.160,202.112.42.192,202.112.42.224,且每个子网内最多可有30台主机(网络地址和广播地址各占用一个IP)。
IP地址的网络号和子网号加上主机号部分的所有位为“0”的地址被定义为网络地址,如168.23.0.0。
网络地址是非常重要的,数据包寻径就基于目的网络地址。
用IP地址和掩码进行二进制与运算则得到网络地址。
IP地址的网络地址部分为“0”,加上主机号被定义为主机地址,如0.0.18.123。
18.2.2Split()函数
Split()函数是一个字符串操作函数,它用于以某个字符为界将一个字符串分成多个子字符串,以字符串数组的形式返回。
例如:
//*************************************************************************
stringstr="
188.23.18.123"
;
string[]strPart=str.Split('
.'
);
上述代码执行后,字符串数组strPart[]中有四个元素,分别为"
188"
、"
23"
18"
和"
123"
,即将字符串"
以字符'
为界分开的四个子字符串。
18.2.3MaskedTextBox控件
相对于.NETFramework1.1,.NETFramework2.0、.NETFramework3.5等版本中新增一个名为MaskedTextBox的类,它位于命名空间“System.Windows.Forms”中,其作用是使用掩码区分正确和不正确的用户输入,常用于输入IP地址。
在设计Windows应用程序时,可以直接使用工具箱中的MaskedTextBox控件。
添加MaskedTextBox控件后,其外观如图18-3所示。
图18-3MaskedTextBox
从外观上看,似乎与TextBox一样,但MaskedTextBox控件具有一些特殊的属性,用于控制用户的输入,下面介绍一下本章的IP设置程序需要用到的几个属性。
1.Mask属性
Mask属性用于设置控制MaskedTextBox控件允许输入的字符串。
例如将Mask属性设为“###.###.###.###”,表示该MaskedTextBox中只能输入4组(每组3个)数字,共12个数字,中间用字符'
隔开。
设置后的MaskedTextBox控件外观如图18-4所示。
图18-4设置Mask属性
2.PromptChar属性
PromptChar属性用于指示用作占位符的字符。
其默认值为下划线字符'
_'
。
例如设置MaskedTextBox控件的Mask属为“###.###.###.###”后,其外观如图18-4所示,若希望不使用下划线而使用空格指示字符占位符,则将PromptChar属性设为空格字符('
'
)即可,设置后的MaskedTextBox控件外观如图18-5所示。
图18-5设置PromptChar属性
18.2.4WMI
WMI(Windows管理规范)是英文WindowsManagementInstrumentation的简写,WMI的功能主要是:
访问本地主机的一些信息和服务,当然也可以管理远程计算机(在拥有足够的权限的前提下),比如:
重启,关机,关闭进程,创建进程等。
具体说来,WMI具有以下作用:
(1)获取本地和远程计算机的硬件软件信息(例如获取本地计算机的磁盘信息、获取本地计算机的网络设置等)。
(2)监视本地和远程计算机的软件和服务等运行状况。
(3)控制本地和远程计算机的软件和服务运行。
(4)其他高级应用。
WMI最初于1998年作为一个附加组件与WindowsNT4.0ServicePack4一起发行,是内置在Windows2000、WindowsXP和WindowsServer2003系列操作系统中核心的管理支持技术。
基于由DistributedManagementTaskForce(DMTF)所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。
大多用户习惯于使用众多的图形化管理工具来管理Windows资源,在WMI之前这些工具都是通过Win32应用程序编程接口(ApplicationProgrammingInterfaces,API)来访问和管理Windows资源的。
熟悉系统编程都知道AP是非常重要的。
但是大多数脚本语言都不能直接调用Win32API,WMI的出现使得系统管理员可以通过一种简便的方法即利用常见的脚本语言实现常用的系统管理任务。
Win32_NetworkAdapterConfiguration类是WMI的一个常用类,用于完成对计算机网络适配器的配置。
WMI提供了Win32_NetworkAdapterConfiguration类的这些属性和方法,可用来自动完成客户端的网络配置。
其中本章介绍的IP设置程序需要用到的一些属性和方法如下:
(1)IPEnabled属性
IPEnabled属性是一个布尔(bool)类型的值,用于表示TCP/IP在该网络适配器上是否可用。
(2)IPAddress[]属性
IPAddress[]属性表示与当前网络适配器相关联的IP地址数组。
(3)DefaultIPGateway[]属性
DefaultIPGateway[]属性表示缺省网关的IP地址数组。
(4)DNSServerSearchOrder[]属性
DNSServerSearchOrder[]属性表示DNS服务器地址数组。
(5)EnableStatic()方法
EnableStatic()方法有两个参数,其原型为:
uint32EnableStatic(stringIPAddress[],stringSubnetMask[]),表示启用静态的TCP/IP设置。
(6)SetGateWays()方法
SetGateWays()方法有两个参数,其原型为:
uint32SetGateWays(stringDefaultIPGateway[],uint16GateWayCostMetric[]),用于指定一系列的网关。
(7)SetDNSServerSearchOrder()方法
SetDNSServerSearchOrder()方法有一个参数,其原型为:
uint32SetDNSServerSearchOrder(stringDNSServerSearchOrder[]),表示以数组的形式传入DNS服务器地址列表。
另外,本章介绍的IP设置程序还用到了ManagementClass类的GetMethodParameters()方法和InvokeMethod()方法。
其中GetMethodParameters()方法有一个名为methodName的字符串参数,它用于获取methodName方法的参数列表;
InvokeMethod()方法是对WMI对象调用的方法。
18.3IP设置程序的用户界面
对于本章介绍的IP设置程序来说,简单易用、操作方便是至关重要的,因为设计该IP设置程序的目的就是为了解决操作系统中自带的IP修改工具操作麻烦的问题。
因此,设计一个好的用户界面是非常关键的,本节将介绍IP设置程序用户界面的设计以及窗体和窗体上各对象的属性设置。
18.3.1界面设计
本小节介绍IP设置程序的用户界面设计、用户界面各对象的说明,以及IP设置程序的使用和操作方法。
1.用户界面设计
打开VisualC#2008开发工具,新建一个名为“IPSet”的Windows应用程序,然后使用PictureBox、Label、ComboBox、GroupBox、TextBox、MakedTextBox、Button以及ListBox控件将用户界面设计成如图18-6所示(按照表18-2给出的信息设置好窗体及窗体上各控件的属性后的界面)。
图18-6IP设置程序用户界面
2.界面说明及操作方法
用户界面中左上角的网卡列表列出了本计算机的所有可用网络适配器,选择不同的网络适配器则对不同的网络适配器对应的网络配置进行操作。
用户界面中右上角的标签控件中显示当前使用的IP地址。
用户界面中右边的【教室号及其对应的网络号】用于添加教室名称及其对应的网络地址信息(这些信息均保存在程序可执行文件路径下的一个名为“IPList.ini”的文件中),所有的信息都显示在列表框中。
界面左下方【修改网络设置】是用户设置本机网络配置的地方,其操作方法为:
首先在【教室号】组合框中选择当前所在的教室编号(或者在右边的列表框中选中该教室及网络地址列表项),这时会在【主机号】文本框中自动生成一个主机号(即C类二进制IP地址的后8位),若不希望更改成自动生成的主机号,可直接在【主机号】文本框中修改,接下来再修改好子网掩码和网关以及DNS服务器地址,最后单击【修改】按钮来设置本机的网络配置,在发生【主机号】输入错误或者IP冲突等异常等情况时,系统报错。
18.3.2属性设置
为窗体添加好控件后,应设置各对象的属性。
表18-2给出了IP设置程序用户界面中的窗体和窗体上各控件的属性设置情况。
表18-2窗体和各控件的属性设置
控件类型
控件名称
属性
设置结果
Form
Form1
Name
frmIPSet
Text
IP设置
StartPosition
CenterScreen
MaximizeBox
False
AutoSizeMode
GrowAndShrink
BackColor
Window
Icon
选择IPSet图标(可以在本书的源代码文件中找到)
PictureBox
PictureBox1
Image
选择网卡图片(可以在本书的源代码文件中找到)
GroupBox
GroupBox1
修改网络设置
GroupBox2
IP地址
GroupBox3
子网掩码和网关
GroupBox4
DNS服务器地址
GroupBox5
教室号及其对应的网络号
ComboBox
ComboBox1
cmbConn
DropDownStyle
DropDownList
ComboBox2
cmbClassroomNum
Label
Label1
当前IP地址:
Label2
lblIP
“”(清空)
AutoSize
Label3
教室号
Label4
主机号
Label5
子网掩码
Label6
网关
Label7
首先地址
Label8
备用地址
Label9
教室
Label10
网络地址
Label11
教室号
Label12
(如:
A101)
Label13
网络号
Label14
(尾数为0)
Label15
188.23.18.0)
TextBox
TextBox1
txtHostNum
MaxLength
3
TextBox2
txtClassroomNum
4
MaskedTextBox
MaskedTextBox1
mtxtSubNetwork
Mask
###.###.###.###
PromptChar
'
(一个空格字符)
MaskedTextBox2
mtxtGateway
MaskedTextBox3
mtxtDNS1
MaskedTextBox4
mtxtDNS2
MaskedTextBox5
mtxtNetworkNum
###.###.###.#
Button
Button1
btnSet
修改
Button2
btnClose
退出
Button3
btnInsert
添加教室号及其对应的网络号
ListBox
ListBox1
lstNum
18.4编写程序代码
用户界面设计完毕后,接下来的工作便是编写程序代码,因为IP设置程序程序需要使用到WMI,因此首先添加对WMI的引用,打开【解决方案资源管理器】,在【引用】项上单击右键,并选择【添加引用】菜单项,如图18-7所示。
图18-7添加引用
选择【添加引用】菜单项后,将会弹出如图18-8所示的【添加引用】对话框窗口,选择【.NET】选项卡中的System.Management组件,然后单击【确定】按钮即可。
图18-8【添加引用】对话框
接下来打开项目的代码编辑器编写程序代码,首先为项目添加两个分别用于设置网络配置和读写文本文件的命名空间,代码如下:
usingSystem.Management;
//访问网络设置
usingSystem.IO;
//读写文本文件
程序中需要用到几个公共变量,因此需要在代码的通用段(frmIPSet类)中,定义这些公共变量,代码如下:
//*********************************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualC 制作 IP 设置 程序