您好, 访客   登录/注册

IP子网划分的VB程序实现

来源:用户上传      作者: 刘鹏

  摘 要:本文主要讨论IP子网划分的技术原理以及通过VB开发一个简单、实用、易用的IP子网划分的桌面应用程序的设计思想、算法设计、代码实现的过程,文中也体现了一种将技术工作中的事务用计算机程序的思想来实现的精神。
  关键词:子网划分;子网掩码;子网号;VB
  中图分类号:TN943
  1 技术原理
  IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议,适用范围包括了从最小的私人网络到最大的全球互联网在内所有类型的计算机网络。在网络中,每一台网络设备都拥有单独的IP地址作为标识符。IP地址由从0到42亿9496万范围内的32位数字组成。因此,理论上说,这就意味互联网最多可以包含大约43亿个单独系统。但是,这么大的规模对于网络管理来说,是非常的不方便,因此,它被分为四个部分,每个部分都是由一个8位字节组成,中间用“.”号给予分割。由于二进制数字太长阅读起来不是很方便,所以它被转换为0到256之间的十进制数字。
  子网,顾名思义,指的是次级网络,也就是位于一个大型网络中的小网络。最小的没有包含更多分支的子网被认为是一个单独的“广播域”,通过一台以太网交换机建立起一张局域网(LAN)。对于网络来说,广播域服务是一项非常的重要功能,因为它可以实现让网络设备通过介质访问控制地址直接进行连接,而不需要经过多张子网,甚至整个互联网。
  Internet组织机构定义了五种IP地址,用于主机的有A、B、C三类地址随着互连网应用的不断扩大,IP地址资源越来越少。为了实现更小的广播域并更好地利用主机地址中的每一位,可以把基于类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于类的网络地址的主机部分创建的。划分子网后,通过使用子网掩码,把子网隐藏起来,使得从外部看网络没有变化。
  2 可行性分析
  2.1 现状分析
  随着网络技术的日益发展,网络的普及程度大大提高,几乎每个单位都建立了自己的局域网,而每个部门可能需要处于不同的子网当中。划分子网有减少网络流量、提高网络性能、简化管理以及易于扩大地理范围的优点,所以划分子网是每个单位的网络管理员或者计算机技术人员必定遇到的问题。但是由于完整的IP由一组32位2进制数组成每8位为一个段,共分为4段,段于段之间用“.”分开。
  要划分子网必然涉及到一定量的二进制与十进制的相互转换、指数计算和计数运算,虽然计算量并不大,但完全由人工来完成则耗时耗力,而且出现错误的几率较高,开发一个能快速进行子网划分的应用程序可以大大节省工作量,并减少人工运算中的计算错误。同时也可以把程序应用到高校或职业院校的网络基础课程中,加深学生对IP子网划分知识点的认识。
  2.2 技术可行性
  Visual Basic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高,且功能强大。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件。
  Visual Basic 6.0虽然已经是很有历史的版本,但是开发划分子网程序只需用到简单常见的控件,如框架、文本框、命令按钮、单选框等,并用到变量、数组、通用函数和常用的内部函数等VB常用元素,而且算法的设计比较简单,从实际编码情况来看,代码量也不会很大。Visual Basic 6.0比新版本占用内存小,运行速度快,用于开发本程序是非常适合的。
  3 设计思想
  设计子网划分程序,先应该了解子网划分与掩码设置的原理,子网划分是通过借用IP地址的若干个主机位来充当子网地址从而将原网络划分为若干子网而实现的。划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。
  4 算法设计
  算法设计的前提是默认子网掩码的长度,即B类地址为16位,C类地址为24位。并通过设计友好的程序界面让用户输入以下的关键信息:
  (1)将要划分子网的IP地址。
  (2)划分子网的方式,即按照子网数量还是按照每个子网主机数量来划分。
  (3)欲显示划分完成后的子网号。
  获得以上信息后,通过分析用户输入的IP地址是否合法,如合法则分析该IP属于哪一类型的网络,得出默认的子网掩码长度。第二步可确定划分子网的方式,当用户要求以子网数来划分子网时,计算该子网数所应该占的二进制位数,从而确定子网掩码的长度。当用户要求用每个子网的主机数划分子网时,计算该主机数所应占的二进制位数。从而用IP地址的总位数减去主机数所占二进制位数则也可得到子网掩码的长度。
  以下是获取关键信息以后的详细设计步骤:
  (1)求出新的子网掩码的长度,即确定网络数和主机数分别占据的位数。
  (2)将用户输入的IP地址用函数转换成为二进制形式。
  (3)生成一个32位长度的字符型数组保存上一步生成的二进制字符串。
  (4)通过用户输入的网络编号(如1,2,3…)和数组值覆盖的方法得到新的数组,表示每个子网的网络地址。
  (5)将上一步所生成的网络号显示在文本框中,表示二进制的网络地址,然后通过函数转换成点十进制的形式显示在文本框中,表示十进制的网络地址。
  (6)将第4步生成的数组最末位加1,并转成点十进制形式显示在文本框中,表示子网络的起始地址。
  (7)将第4步生成的数组的主机位除第32位外全部置为1,转换成十进制形式显示在文本框中,表示子网络的终止地址。
  (8)将第4步生成的数组的主机位全部置为1,转换成十进制形式显示在文本框中,表示子网的广播地址。
  6 结论
  通过子网划分应用程序的开发,既可加深对网络基础知识特别是子网划分原理的了解,并对VB语言的语法和编程规则有更进一步的领悟,提高了思维创新能力和编程的水平。子网划分程序的完成也为子网划分提供了一个便利的操作方式,同时可以为高校或职业院校的网络基础课程提供一个简单易用的工具,帮助教师授课并加深学生对IP子网划分知识点的认识。
  另外,本程序还可以进一步完善,比如增加非默认子网掩码情况下的子网划分功能、增加下一级子网划分的功能和更改单步显示所有子网变为全部显示的功能。
  参考文献:
  [1]林卓然.VB语言程序设计[M].电子工业出版社,2009.
  [2]瞿彬,王凤林.Visual Basic程序设计全程指南[M].电子工业出版社,2009.
  [3]杨晶.VB6.0程序设计[M].机械工业出版社,2010.
  作者简介:刘鹏(1981.09.29-),男,汉,广西梧州人,计算机科学与技术讲师,研究方向:计算机程序设计、数据库。
  作者单位:广东省机械高级技工学校,广州 510450
转载注明来源:https://www.xzbu.com/8/view-5254982.htm