计算机网络课程设计报告 题 目: ip地址的合法性及子网判断 学生姓名: 学 号: 专业班级: 同组姓名: 指导教师: 设计时间:
指导老师意见: 评定成绩: 签名: 日期: 年 月 日 IP地址的合法性及子网判断
目录
一、 课程设计的目的和意义 ............................... 1 1.1设计目的 ......................................... 2 1.2设计的意义 ....................................... 2 二、 课程设计的内容和要求 ............................... 2 三、 课程设计的相关技术 ................................. 3 1. IP地址相关概念 ................................... 3 2. 特殊的IP地址形式 ................................ 5 3.子网的划分 ........................................ 6 四.课程设计过程 ........................................ 6 1、课程设计流程图: ................................... 6 六、课程设计小结 ....................................... 10 七.参考文献 ............................................ 11 八.附录:课程设计原代码 ................................. 12
一、 课程设计的目的和意义
1
IP地址的合法性及子网判断
1.1设计目的
掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。并判断该地址是否属于一个给定的子网。
1.2设计的意义
1、有利于对基础知识的理解 2、有利于逻辑思维的锻炼
程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。 3、有利于与其他学科的整合
在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。在信息技术课中整合其它学科的知识,发挥信息技术的优势。 4、有利于治学态度的培养。
程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养。
二、 课程设计的内容和要求
在掌握IP地址的表示方法以及子网划分方法的基础上,并以计算机网络中关于IP地址的相关理论知识为基石,运用C/C++语言按如下要求完成程序。
1.在判断一个IP地址合法性时要自行编写代码,不要使用任何inet函数
2
IP地址的合法性及子网判断
2.命令行格式:ip_test subnet/mask ip_addr
其中,ip_test为程序名;subnet为子网号;mask是一个整型数值,代表子网掩码连续1的个数;ip_addr表示要测试的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表示) 3.判断subnet和ip_addr的合法性。
在判断IP地址合法性时要自行编写代码,不要使用任何inet 函数。判断时要考虑各种情况,全面分析问题。例如以下IP地址均不合法:
123..2.1 123.23$.2.1 123.2345.2.1 123.23.45.1 4.判断掩码的合法性。
譬如说mask的值为负数或者大与32,这时输入的掩码就不合法。 5.在IP地址合法,掩码合法以及子网号也合法的前提下,判断ip_addr是否属于subnet。
6.输出命令行中的ip是否合法,掩码是否合法,子网号码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。 7.还可以判断子网号,主机号全0,全1问题。
课程设计的相关技术
1. IP地址相关概念
所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。 按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长 32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址
3
IP地址的合法性及子网判断
是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。于是,上面的IP地址可以表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多。
大型的互连网络中应该有一个全局的地址系统,它能够给连接到互联网的每一台主机或者路由器分配一个唯一的全局地址。TCP/IP协议的网络层使用的地址标识符叫做IP地址,IPv4中IP地址是一个32位的二进制地址。网络中的每一台主机或者路由器至少有一个IP地址,在Internet中不允许有两个设备具有相同的IP地址。如果一台主机或者路由器连接到两个或多个物理网络,那么它可以拥有两个或多个IP地址。
IP地址采用分层结构,由网络号与主机号两部分组成(如下图所示):
网络号 主机号
IP地址长度为32位,用点分十进制表示,格式为ⅹ.ⅹ.ⅹ.ⅹ,每个ⅹ为8位,每个ⅹ的值为0—255(例如202.113.29.119)。根据不同的取值范围,IP地址可以分为五类,IP地址中的前5位用于标识IP地址的类别,具体的分类规则如下:
·A类地址的第一位为0。 ·B类地址的前两位为10 . ·C类地址的前三位为110。 ·D类地址的前四位为1110。 ·E类地址的前五位为11110。
五类IP地址的结构如下所示;
0 10 110 网络号(7位) 网络号(14位) 网络号(21位) 主机号(24位) 主机号(16位) 主机号(8位) 4