计算机网络课程设计报告2_第1页
计算机网络课程设计报告2_第2页
计算机网络课程设计报告2_第3页
计算机网络课程设计报告2_第4页
计算机网络课程设计报告2_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅

2、薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿

3、莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄

4、蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈

5、蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节

6、蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆

7、薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿膁节蚁袈袁蒈蚇袇肃莀薃袇膅薆葿袆芈荿螇袅羇膁蚃羄肀莇蕿羃膂膀蒅羂袂莅莁羁肄膈螀羁膆蒄蚆羀艿芆薂罿羈蒂蒈羈肁芅螇肇膃蒀蚂肆芅芃薈肅羅蒈蒄蚂膇芁蒀蚁艿薇蝿蚀罿莀蚅虿肁薅薁虿膄莈蒇蚈芆膁螆螇羆莆蚂螆肈腿薈螅芀莄薄螄羀芇蒀螃肂蒃螈螃膅芆蚄螂芇蒁薀螁羇芄蒆袀聿葿莂衿 计算机网络课程设计报告题 目: ip地址的合法性及子网判断 学生姓名: 学 号: 0 专业班级: 芙 同组姓名: 指导教师: 设计时间: 2012年下学期第19周 指导老师意见:

8、评定成绩: 签名: 日期: 年 月 日 目录一、课程设计目的和意义111设计目的112设计的意义1二、课程设计的内容和要求2三、课程设计的相关技术33.1 课程设计的运行环境33.2 ip地址相关概念和知识的回顾。33.3 特殊的ip地址形式43.4 子网的划分5四、课程设计过程641程序大致设计过程:642实验流程图6五、部分程序运行结果9六、课程设计小结11七、参考文献12附录一:源代码12一、课程设计目的和意义 11设计目的通过计算机网络课程设计,让我们学会处理几种常用计算机网络问题的基本处理方法,掌握计算机网络的基本原理,使我们在面对不断变化的技术时,具有跟踪,学习的基础与能力。掌握i

9、p地址的分类,准确理解子网、掩码的概念,确切地明了ip地址的合法格式。并判断该地址是否属于一个给定的子网。具体而言,关于”ip地址的合法性及子网判断”课程设计题目的目的是:用c/c+语言编写程序,以判断一个ip地址是否合法,并判断该地址是否属于一个给定的子网.从而能够考察我们对ip地址的概念,各类ip地址的区分以及子网划分的理解和掌握程度. 12设计的意义1、有利于基础知识的理解通过计算机网络的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。让学生接触了程度设计,就能真正理解,从而进一步打破计算机的神秘感

10、。2、有利于逻辑思维的锻炼程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。3、有利于与其他学科的整合在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。在信息技术课中整合其它学科的知识,发挥信息技术的优势。 4、有利于治学态度的培养。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、

11、打错了一个字母,编译就不通过,程序无法正常运行。因此,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。有助于严谨治学、一丝不苟的科学精神的培养,以及不怕失败、百折不挠品格的锻炼。二、课程设计的内容和要求在掌握ip地址的表示方法以及子网划分方法的基础上,并以计算机网络中关于ip地址的相关理论知识为基石,运用c/c+语言按如下要求完成程序。(1) 命令行格式:ip_test subnet/mask ip_addr其中,ip_test为程序名;subnet为子网号;mask是一个整型数值,代表子网掩码连续1的个数;ip_addr表示要

12、测试的ip地址。比如说,要测试的ip地址为202.113.16.10,子网号码是202.113.16.0,子网掩码是255.255.255.0,则命令行为ip_test202.113.16.0/24 202.113.16.10。(因为255.255.255.0是连续的24个1,所以用24表示)(2) 判断subnet和ip_addr的合法性。在判断ip地址合法性时要自行编写代码,不要使用任何inet函数。判断时要考虑各种情况,全面分析问题。例如以下ip地址均不合法:123.2.1123.23$.2.1123.2345.2.1123.23.45.1(3)判断掩码的合法性。譬如说mask的值为负数

13、或者大与32,这时输入的掩码就不合法。(3) 在ip地址合法,掩码合法以及子网号也合法的前提下,判断ip_addr是否属于subnet。(4) 输出命令行中的ip是否合法,掩码是否合法,子网号码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。(5) 还可以判断子网号,主机号全0,全1问题。三、课程设计的相关技术3.1 课程设计的运行环境c+是一种使用非常广泛的计算机编程语言。c+是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格. 本程序在windows环境下利

14、用c+语言编写,microsoft visual studio 6.0进行编译。visual studio是微软公司推出的开发环境,visual studio可以用来创建windows平台下的windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和office插件。3.2 ip地址相关概念和知识的回顾。大型的互连网络中应该有一个全局的地址系统,它能够给连接到互联网的每一台主机或者路由器分配一个唯一的全局地址。tcp/ip协议的网络层使用的地址标识符叫做ip地址,ipv4中ip地址是一个32位的二进制地址。网络中的每一台主机或者路由器至少有一个ip地址,在internet

15、中不允许有两个设备具有相同的ip地址。如果一台主机或者路由器连接到两个或多个物理网络,那么它可以拥有两个或多个ip地址。ip地址采用分层结构,由网络号与主机号两部分组成(如下图所示):网络号主机号ip地址长度为32位,用点分十进制表示,格式为.,每个为8位,每个的值为0255(例如202.113.29.119)。根据不同的取值范围,ip地址可以分为五类,ip地址中的前5位用于标识ip地址的类别,具体的分类规则如下:a类地址的第一位为0。b类地址的前两位为10 .c类地址的前三位为110。d类地址的前四位为1110。e类地址的前五位为11110。五类ip地址的结构如下所示;0网络号(7位)主机号

16、(24位)10网络号(14位)主机号(16位)110网络号(21位)主机号(8位)1110组播地址(28位)11110保留用于课程设计和将来使用a类ip地址结构适合用于有大量主机的大型网络。由于主机号长度为24位,因此每个a类网络的主机ip数理论上为224=16777216。b类ip地址适合用于一些国际性大公司与政府机构等中等大小的组织。由于网络ip长度为14位,因此允许有214=16384个不同的b类网络,实际允许连接16382个网络。c类ip地址适合用于一些小公司与普通的研究机构。 3.3 特殊的ip地址形式(1) 直接广播地址a类,b类,c类ip地址中主机号全1的地址称为直接广播地址,用

17、来使路由器将一个分组以广播方式发送给特定网络上的所有主机。直接广播地址只能作为分组中的目的地址。物理网络采用的是点点传输方式,分组广播需要通过软件来实现。网络号主机号全1(2)受限广播地址网络号与主机号的32位全位1的地址为受限广播地址,用来将一个分组以广播方式发送给本网的所有主机。本网的所有主机将接受该分组,路由器则阻挡该分组通过。全1(3) “这个网络上的这台主机”地址全0(4)“这个网络上的特定主机”地址主机或路由器向本网络上的某个特定的主机发送分组,网络号部分为全0,主机号为确定的值。这样的分组被相知在本网络内部。网络号全0主机号(5)回送地址回送地址用于网络软件测试和本地进程见通信。

18、tcp/ip协议规定网络号为127的分组不能出现在任何网络上;主机和路由器不能为该地址广播任何寻址信息。127任意值(通常取1) 3.4 子网的划分人们在早期设计与建设arpanet是,没有预料到网络的发展速度如此之快,应用范围如此之广。当时个人计算机与局域网尚未出现。所以,研究者在设计internet地址的编址方案时,主要是针对大型互联的网络结构。设计ip地址的最初目的是希望每个ip得志都能唯一地、确定地识别一个网络与一台主机,但是这种方法同时也存在着两个主要的问题,即ip地址的有效利用率和路由器的工作效率。为了解决这个问题,人们提出了子网(subnet)和超网(supernet)的概念。子

19、网就是一个大的网络划分成几个较小的网络,而每一个小网络都是其自己的地址。超网就是将一个组织所属的几个c类网络合并成为一个更大地址范围的逻辑网络。划分子网实际上就是在ip地址系统中增加一个层次。三级ip地址的表示方法为netid-subnet id-host id。第一级网络号定义了网点的位置;第二级子网号定义了物理子网;第三级主机号定义了主机和路由器到物理网络的连接。三级层次的ip地址,一个ip分组的路由器的过程分为三步:第一步将分组转发给网点,第二步转发给物理子网,第三步转发给确切的主机。当三级层次的ip地址提出后,一个很显示的问题是:如何从一个ip地址提取出子网号。因此,提出了子网掩码(s

20、ubnet mask)的概念。子网掩码有时也叫做子网掩码。子网掩码表示方法:网络号与子网号置1,主机号置0。如判断某一ip地址是否属于某一子网呢?只需将二进制ip地址与子网掩码按位进行“与”运算。若“与”运算所得值与给定子网地址一致,则说明该ip地址属于给定的子网。四、课程设计过程41程序大致设计过程:1.分别判断子网号、掩码和ip地址的基本格式是否合法。2.如果三者的基本格式都合法,才调用判定“ip地址是否为子网成员”的函数。该函数同时判别子网号与掩码是否匹配,子网号为全0或全1,主机号为全0、全1.42实验流程图如下: 1.主流程图ynyyynnn开始子网是否合法ip地址是否属于子网结束掩

21、码是否合法ip地址是否合法图31主流程图2.验证ip地址合法性流程图yn开始结束用正则表达式判断是否合法输入ip地址图32验证ip地址合法性流程图3验证子网掩码合法性流程图yn开始结束用正则表达式判断是否合法输入子网掩码图33验证子网掩码合法性流程图 4验证ip是否属于某个子网流程图:yn开始结束结果与子网比较拆分ip地址与子网掩码拆分ip地址和子网掩码进行与运算输入ip地址,子网掩码和子网地址图34验证ip是否属于某个子网流程图五、部分程序运行结果程序主要运行界面: 1)测试格式是否为三段格式如图: 分析:程序要求是“程序名 子网号/掩码 ip地址”格式而这里只有两端造成参数不匹配,出错!

22、分析:虽然格式是三段、子网号无效且掩码是零,其ip地址还是合法的!2)简单判断子网号及掩码长度是否超出范围如图: 分析:因为程序里设置的子网号和掩码字符串长度最多是18个字符而这里有20个字符大于18,所以出错! 分析:程序中的ip地址字符串最长只有15个而程序中有17个字符大于15个,所以出错!3)测试ip地址是否合法如图: 分析:ip地址不符合格式要求! 分析:ip地址段数不是四,所以出错! 4)测试子网号与掩码是否匹配如图: 分析:子网号转换为二进制:00000001 11000000 00000000 00000000 子网掩码转换成二进制:11111111 10000000 0000

23、0000 00000000 从以上可以看出子网号与子网掩码不匹配与输出结果是一样的说明程序算法是正确的! 分析:子网号转换为二进制:00000001 10000000 00000000 00000000 子网掩码转换成二进制:11111111 10000000 00000000 00000000 从以上可以看出子网号与子网掩码匹配与输出结果是一样的说明程序算法是正确的! 5)测试子网号是否全零或全一如图:六、课程设计小结这次课程设计,感触颇深!课程设计是学生考试前最后一个重要学习环节,是学习深化与升华的重要过程。经过这次课程设计,我发现现在学习的知识远远不够,经过自学以及向同学们学习才得以完成

24、这次课程设计。此次课程设计任务是写一个判断ip地址的合法性和判断这个ip地址是否为某一个子网。花了一天多时间才完成了程序的编写,总体上说收获很大,程序虽然是已经学过的,不过是应用一下而已,但是还是遇到了一些问题。收获最大的地方是关于计算机网络的知识,这次课程设计,让我明白了ip地址和子网掩码的关系,同时也明白了子网的划分。在这一周的时间里,我通过这次的课程设计加强了自己掌握和理解计算机网络理论原理的能力,培养了自己的实际动手能力与综合设计能力,并提高了自己的技术素质。课程设计一向是我比较喜欢的实践项目,因为从中会学到许多东西,既检验了我们前段时间理论知识的学习效果,又锻炼了我的动手实践能力。课

25、程设计为我们提供了一个既动手又动脑,独立参加实践的好机会,要求我们将理论知识和实际情况有机地结合起来,锻炼我们的分析问题,解决实际问题的能力,提高我们适应实际,实践的能力;它也要求我们综合运用所学的计算机网络知识来解决有一定难度的问题,从而提高了我们对知识的综合运用能力,加深对知识间的融会贯通和联系的理解。实验报告有点难搞,好多东西都要一点一点的敲上去,很是辛苦。不过搞好了也是件值得开心的事。对我而言,知识上的收获很重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!希望以后还会有这样的机会锻炼自己。也希望老师们能多为学生们提供类似的机会

26、,只有这样的锻炼机会多了,才能不断提高我们的动手实践能力.七、参考文献 张尧学;计算机网络与internet教程; 北京:清华大学出版社 吴功宣;计算机网络课程设计; 北京: 机械工业出版社附录一:源代码#include #include #include #include #include #include #include #include #include #include #pragma comment(lib,ws2_32.lib)/类结构class iptestpublic:char ip15;char subnetplusmask18;char subnet18;char tem

27、pip15;l maskisvalid;int mask;char tempsub18; iptest(char *,char *);iptest();bool noillegalchar(char *); /非法字符的判断bool ipisvalid(char *); /判断ip地址是否合法bool subnetisvalid(char *); /判断子网号是否合法void belong(); /判断ip是否为子网成员print(); /主函数void main(int argc,char * argv)if(argc!=3) /判断参数格式化是否正确couterrorendlformat

28、shoud be:ip_test subnet/mask ip18) /先判断最简单的错误,长度是否超出cout15)coutip is too long;return;iptest test(argv1,argv2); /实例话iptest类test.print(); /完成相应判别并输出结果/构造函数iptest:iptest( char* subnetplusmask, char *ip)maskisvalid=true;char temp2;/把/前的字符复制到subnet字符数组中int smlen=strlen(subnetplusmask);for( int i=0; isubn

29、eti=subnetplusmaski;this-tempsubi=subnetplusmaski;subneti=0;tempsubi=0;if(i=smlen-2) /初始化mask和maskisvslidif(i=smlen-2)temp0=subnetplusmaski+1;if( !isdigit(temp0) )maskisvalid = false;else if( i = smlen-3 ) temp0=subnetplusmaski+1;temp1=subnetplusmaski+2;if( !(isdigit(temp0)&isdigit(temp1) )maskisval

30、id=false;mask = atoi(temp);if( mask 32)maskisvalid = false;elsemaskisvalid=false;strcpy( this-subnetplusmask, subnetplusmask);strcpy( this-ip, ip );strcpy( this-tempip, ip );/调用判别函数,并输出结果iptest:print()bool subisv=subnetisvalid(tempsub);bool ipisv=ipisvalid(tempip);if(!subisv)coutsubnet is invalid !

31、endl;elsecoutvalid subnet: subnetendl;if(!maskisvalid)coutmask is invalid!endl;elsecoutvalid mask:maskendl;if(!ipisv)coutip is invalid!endl;elsecoutvalid ip:ipendl;/判断ip是否belong subnetif(subisv&ipisv&maskisvalid)belong();/子函数,判断输入是否含有非数字字符bool iptest:noillegalchar(char *ch)unsigned int i,k=0;for(i=0

32、;istrlen(ch);i+)if(isdigit(*(ch+i)=0)return false;return true;/判别ip地址是否合法bool iptest:ipisvalid(char * ip)char ch= .; char *token,*dot4;int iplen=0;token=strtok(ip,ch); /以.标志将ip字符串按节分开while(token!=null) /循环进行,知道结束dotiplen=token; /将分开的每段赋值给dotiplen+;token= strtok(null,ch);if(iplen!=4)couttempsubendl;r

33、eturn false; /段数不对for(int i=0;i255) /有非法字符或某段值非法return false;return true;/判断子网号是否合法bool iptest:subnetisvalid(char* subnet)if( ! ipisvalid(subnet) /调用判别ip地址合法性的函数return false;return true;/判断ip是否为子网成员,判断子网号与掩码是否匹配,以及子网号、主机号全0全1问题void iptest:belong()int sublen=strlen(subnet);int iplen=strlen(ip);unsign

34、ed int iipa,isuba,imask;unsigned char suba4,ipa4;char temp3;int i,j,t=0;for(i=0,j=0;isublen;i+) /不用再检错if(subneti != .)tempj+=subneti; /temp数组中放.间的串elsesuba3-t = atoi(temp); /suba数组中放.间的数据j=0;t+;temp0=temp1=temp2=0;suba0 = atoi(temp);temp0=temp1=temp2=0;isuba = *( unsigned int *)suba; /isuba中放subnet中

35、.除外的串对应的数for(i= 0, j= 0, t= 0; iiplen; i+) /不用再检错if(ipi != .)tempj+ = ipi;elseipa3-t = atoi(temp);j=0;t+;temp0=temp1=temp2=0;ipa0 = atoi(temp);iipa = *( unsigned int* )ipa; /iipa中放ip中.除外的串对应的数imask = 0xffffffff;imask=(32-mask); /获取掩码if( ( isuba | imask ) != imask ) /说明sub与mask不匹配cout 子网号与掩码不匹配,error

36、!endl;return;if( ( isuba imask ) = 0 ) /说明子网号全1cout 子网号全1,error!endl;return;if( ( isuba & imask ) = 0 ) /说明子网号全0cout 子网号全0,error!endl;return;if( ( isuba) = (iipa & imask) ) /ip和掩码与,结果和子网号比较if( ( iipa | imask) = imask ) /说明主机号全0cout 主机号全0,error!endl;return;if( ( iipa | imask ) = 0xffffffff ) /说明主机号全1

37、cout 主机号全1,error!endl;return;/ip属于subnetcout ip belongs to subnetplusmaskendl;return;/ip不属于subnetelsecout ip doesnt belong to subnetplusmaskendl; 蚀螁膀莇莀羇肆莇蒂螀羂莆薅羅羈莅螇袈芇莄蒇蚁膃莃蕿袆聿莂蚁虿羅莁莁袄袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羁羇蒇薀螄芆蒆蚂罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀虿羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蚀芅膆蒅袅膁膅薇蚈肇芄蚀袄羃芃荿蚆衿芃蒂袂芇节蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁芈蚀螁膀莇莀羇肆莇蒂螀羂莆薅羅羈莅螇袈芇莄蒇蚁膃莃蕿袆

38、聿莂蚁虿羅莁莁袄袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羁羇蒇薀螄芆蒆蚂罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀虿羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蚀芅膆蒅袅膁膅薇蚈肇芄蚀袄羃芃荿蚆衿芃蒂袂芇节蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁芈蚀螁膀莇莀羇肆莇蒂螀羂莆薅羅羈莅螇袈芇莄蒇蚁膃莃蕿袆聿莂蚁虿羅莁莁袄袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羁羇蒇薀螄芆蒆蚂罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀虿羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蚀芅膆蒅袅膁膅薇蚈肇芄蚀袄羃芃荿蚆衿芃蒂袂芇节蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁芈蚀螁膀莇莀羇肆莇蒂螀羂莆薅羅羈莅螇袈芇莄蒇蚁膃莃蕿袆聿莂蚁虿羅莁莁袄袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羁羇蒇薀螄芆蒆蚂罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀虿羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蚀芅膆蒅袅膁膅薇蚈肇芄蚀袄羃芃荿蚆衿芃蒂袂芇节蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁芈蚀螁膀莇莀羇肆莇蒂螀羂莆薅羅羈莅螇袈芇莄蒇蚁膃莃蕿袆聿莂蚁虿羅莁莁袄袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羁羇蒇薀螄芆蒆蚂罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀虿羆膈腿莈蝿膄腿薁肄肀膈蚃袇羆膇螅蚀芅膆蒅袅膁膅薇蚈肇芄蚀袄羃芃荿蚆衿芃蒂袂芇节蚄蚅膃芁螆羀聿芀蒆螃羅艿薈羈袁芈蚀螁膀莇莀羇肆莇蒂螀羂莆薅羅羈莅螇袈芇莄蒇蚁膃莃蕿袆聿莂蚁虿羅莁莁袄袀蒁蒃蚇腿蒀薆袃肅葿蚈蚆肁蒈蒈羁羇蒇薀螄芆蒆蚂罿膂蒆螄螂肈蒅蒄羈羄膁薆螀袀膀虿羆膈

温馨提示

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

评论

0/150

提交评论