IP地址的合法性与子网判断.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IP地址的合法性与子网判断

一、?课程设计目的? 掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。并判断该地址是否属于一个给定的子网。? 二、设计的意义? 1、有利于对基础知识的理解 ?2、有利于逻辑思维的锻炼? 程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。? 3、有利于与其他学科的整合? 在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。在信息技术课中整合其它学科的知识,发挥信息技术的优势。? 4、有利于治学态度的培养。? 程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养。? 三、?课程设计的内容和要求? 在掌握IP地址的表示方法以及子网划分方法的基础上,并以计算机网络中关于IP地址的相关理论知识为基石,运用C/C++语言按如下要求完成程序。? 1.在判断一个IP地址合法性时要自行编写代码,不要使用任何inet函数? 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问题。 四、课程设计代码 #include iostream.h//头文件 #include string.h//字符串头文件 #include stdlib.h// 分配n个数据项的内存连续空间,每个数据项的大小为size #include stdio.h//标准函数库中的输入输出函数 #include math.h//导入数学中的函数 #include ctype.h//字符测试函数 #include winsock2.h//socket通信,系统头文件 #include ws2tcpip.h #include time.h//时间头文件 #include windows.h//windows头文件 #pragma comment(lib,ws2_32.lib)//静态加入一个库文件 //类结构 class ipTest{//定义一个类的,类的名字为ipTest public: char ip[15];//用于存放ip地址 char subnetPlusMask[18];//用于存放subnetPlusMask地址 char subnet[18];//用于存放subnet地址 char TempIp[15];//用于存放ip地址 bool maskIsValid;//用于判断的个数是否合适,或是否与subnet匹配 int mask;//用于存放mask char Tempsub[18];//用于存放subnet地址 ipTest(char *,char *);//自定义初始化类函数 ~ipTest(){};//析构函数 bool NoIllegalChar(char *); //ip,subnet地址中非法字符的判断 bool ipIsValid(char *);

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档