




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机网络课程设计报告班级:计科134姓名:陈艳红(20131515227)指导老师:韩亚峰日期:2015-6-15一题目:判断ip地址的合法性及子网判断题目要求:1)命令行格式:ip_test subnet/mask ip_addr, ip_test其中为程序名;subnet为子网号;mask是一个数值,代表子网掩码连续1的个数;ip_addr是要测试的IP地址。例如,要测试的IP地址为202.114.16.10,子网号为202.113.16.0,子网掩码为255.255.255.0,则命令行为ip_test 202.113.16.0/24 202.114.16.10(因为255.255.2
2、55.0是连续的24个1,所以用24表示)。2) 判断subnet和ip_addr的合法性。在判断IP地址合法性时要自行编写代码,不要使用任何inet函数。判断时要考虑全面,3) 比如以下IP地址均不合法:123.2.1 123.23$.2.1123.2345.2.1123.23.45.2.13)判断掩码的合法性。4)在IP地址合法的前提下,判断ip_addr是否属于子网subnet。5)输出命令行中的ip是否合法,掩码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。二:概要设计1属性:int flag/用于判断ip地址,子网掩码是否合法,如果不合法重新输入,fl
3、ag=1,表示不合法int i/判断是否存在非法字符int dian/定义分割符2 方法:toCharArray()/使用此方法把用户输入的字符串转换成新的字符数组Length()/返回用户输入的字符串的长度Split()/拆分字符串Parseint()/将字符串参数作为有符号的十进制整数进行解析Concat()/连接字符串Equals()/比较两个字符串是否相等3类input()Iptest()Subnet()三:详细设计(由流程图解释)NYYNNYNYNY 读取一个字符串总长不超过15? return段数=4? 每段的值是否介于0到255input(subnet)是否为真Ip&su
4、bnet_mask=subnetsubnet_Mask首段是否为255 子网号与掩码不匹配 程序结束 输出”掩码非法”调用input 函数 输出”ip地址非法”输出”子网非法”YN 程序开始,变量初始化算法思想:主要分为两部分:一:ip地址的合法性二:是否属于该子网一:ip地址的合法性:参考谢希仁编著的计算机网络,IP地址采用分层结构,由网络号与主机号两部分组成(如下图所示):网络号主机号IP地址长度为32位,用点分十进制表示,格式为.,每个为8位,每个的值为0255(例如202.113.29.119)。根据不同的取值范围,IP地址可以分为五类,IP地址中的前5位用于标识IP地址的类别,具体的
5、分类规则如下:·A类地址的第一位为0。·B类地址的前两位为10 .·C类地址的前三位为110。·D类地址的前四位为1110。·E类地址的前五位为11110例如以下IP地址均不合法:123.2.1123.23$.2.1123.2345.2.1123.23.45.1。四类IP地址的结构如下所示;0网络号(7位)主机号(24位)10网络号(14位)主机号(16位)110网络号(21位)主机号(8位)1110组播地址(28位)二:是否属于该子网首先判断掩码的合法性。无论是哪类地址,掩码的第一个字段都是255。如果不是,一定是掩码非法。在IP地址、掩码以
6、及子网号都合法的前提下,判断ip是否属于subnet。需要进行与运算(&),将ip、subnet_mask相与,将得到的结果与subnet比较,如果相同,则证明该ip属于subnet。四:调试分析在程序最终完成后,进入调试过程中出现了好多错误,但大部分都是拼写错误,还有就是很久没有写程序,一些基本的语法错误,但经过调试后都解决了,下面是调试的结果的截图:1连续输入两个“。”,显示输入非法. 2输入字段中有大于255或小于0的现象,显示输入非法3子网掩码地址第一字段不是255,显示输入非法4得出结果ip地址属于子网分析: 其实就是利用split()将用户手动输入的ip地址和subnet_
7、mask以“.”为界限分为四个小段,并将它们赋值给String类,然后分别将它们转化为int类型,逐段相与,再将相与得到的四小段以“.”为分隔符“拼接”起来,最后一步是将最后得到的这一字符串与之前输入的subnet比较,如果相同则该ip地址输入subnet。五:心得体会通过这次的课程设计,我明白了,在学习理论的基础上还要利用课余时间多做一些实践性的实验,不能只会纸上谈兵。最初写这个题目的时候我是一脸茫然,于是我就去图书馆接有关网络课程设计方面的书,看看书中的内容,再结合平时所学的理论知识,我把我要写的题目的思路想了出来,但实践起来也不是很容易,由于我对C+不是很熟,所以我试着写,但还是没有一点
8、思路,最后我决定用java写,我又参考了网上别人的程序,最后写了出来,但不能运行,主要是程序中有好多错误,经过几个小时的调试修改,程序可以运行了,题目要求的功能实现了,但我感觉不是很完美,但我朋友说,不可能完美的,所以就没有再修改了,最后总结就是实践很重要,但理论也很重要。六:用户手册1:打开eclipse,在文件新建java工程2:工程名为IpTest,点击finfish3.在工程下新建class,在弹出的对话框中的packag中输入ipTest,在class中输入input4.点击完成,然后把源代码复制到代码窗口中5.按F5或点击工具栏中的启动按钮运行图文解说步骤1 FilenewJava
9、 Project步骤2 如下图(注意其中projrct name中应输入你的程序名)输入完毕后,点击Cancel步骤3右键单击ipTestnewclass步骤4 在弹出的对话框中输入:如下图(注意其中package中应输入你的程序名,class输入你程序中的类,但一般输入第一个类的名称)单击cancel步骤5:把源代码复制到代码区间步骤6:调试没有错误后点击工具栏中的运行按钮或是按F5键运行步骤7:根据console中的文字提示进行输入附录:源代码及注释package ipTest;import java.util.*;class inputScanner scanner = new Scan
10、ner(System.in); String s= scanner.nextLine(); int flag; /判断输入的IP地址是否合法,如果不合法从新输入,flag=1为不合法;input() flag=0; char a=s.toCharArray(); if(s.length()>15) System.out.println("地址总长超过15"); flag=1; for(int i=0;i<s.length();i+)/判断是否存在非法字符,分隔符只能为3个, if(ai<'0' | ai>'9') &a
11、mp;& ai!='.') System.out.println("地址中包含非法字符!"); flag=1; break; int dian=0; for(int i=0;i<s.length();i+)/判断是否存在非法字符,分隔符只能为3个, if(ai='.') dian+; if(dian!=3) System.out.println("地址中分隔符只能为3个!"); flag=1; for(int i=0;i<s.length()-1;i+)/判断是否出现连续的分隔符 if(ai='
12、.' && ai+1='.') System.out.println("地址中不能出现连续的分隔符!"); flag=1; break; if(as.length()-1='.')/判断是否最后位为分隔符 System.out.println("地址最后位不能为分隔符!"); if(a0='.')/判断是否首位为分隔符 System.out.println("地址首位不能为分隔符!"); flag=1; String sss=s.split(".&quo
13、t;); for(int o=0;o<sss.length;o+) for(int p=0;p<ssso.length();p+) int num=Integer.parseInt(ssso);if(num>255|num<0)System.out.println("ERROR!地址不在0至255之间!");/ip地址及子网掩码地址的取值范围flag=1;break; class subnet_mask extends input /*判断子网掩码第一个字节是否为255*/int flag2=0;/判断输入的子网掩码是否合法,如果不合法从新输入,fl
14、ag=1表示输入错误; subnet_mask() String dian_s1=s.split("."); int first=Integer.parseInt(dian_s10);/把字符数组转换成十进制数 if(first!=255) System.out.println("地址第一字节不是255!"); flag2=1; class iptest public static void main(String g) System.out.println("请输入IP地址"); input IP=new input(); whil
15、e(IP.flag=1) System.out.println("输入IP地址有误,请重新输入IP地址:"); input xin_IP=new input(); IP.s=xin_IP.s; if(xin_IP.flag=0) break; System.out.println("请输入子网号");input subnet=new input(); while(subnet.flag=1) System.out.println("您输入的子网号有错误!请重新输入子网号:"); input xin_subnet=new input()
16、; subnet.s=xin_subnet.s; if(xin_subnet.flag=0) break; System.out.println("请输入子网掩码"); subnet_mask new3=new subnet_mask(); while(new3.flag=1|new3.flag2=1) System.out.println("您输入的子网掩码有错误!请重新输入子网掩码:"); input xin_new3=new input(); new3.s=xin_new3.s; if(xin_new3.flag=0) break; /*判断输入的
17、Ip地址是否属于子网*/ String s=IP.s; String s2=new3.s; String s3=subnet.s; String split_s=s.split("."); String split_s2=s2.split("."); System.out.println("您输入的IP地址是:"+IP.s); System.out.println("您输入的子网地址是:"+subnet.s); System.out.println("您输入的子网掩码是:"+new3.s); /
18、得出 "XX " int x00=Integer.parseInt(split_s0); int x22=Integer.parseInt(split_s20); int and_x=x00&x22;/进行与运算 String right_mask =String.valueOf(and_x); /得出余下的".XX.XX.XX" 并和之前得出的"XX"合并 for(int i=1;i<4;i+) int x=Integer.parseInt(split_si); int x2=Integer.parseInt(split_s2i); int and_x12=x&x2;/进行与运算 String and_x11 =String.valueOf(and_x12); right_mask=right_mask.conc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 10 青山处处埋忠骨 (教学设计)-2023-2024学年统编版语文五年级下册
- 居住项目地块景观设计方案
- 2024-2025学年高中数学 第一章 三角函数 1.4.3 正切函数的性质与图象(4)教学教学实录 新人教A版必修4
- 11《动物的眼睛》教学设计-2023-2024学年科学二年级下册青岛版
- 《纸的立体表现-纸雕塑》教学设计
- 13《猫》(教学设计)-2023-2024学年统编版语文四年级下册
- 2023一年级数学下册 6 100以内的加法和减法(一)3两位数减一位数、整十数练习课(2)配套教学实录 新人教版
- 提升医疗设备中流体操作精度
- 上消化道出血 (8)课件
- 2024-2025学年新教材高中政治 第二单元 认识社会与价值选择 5.2 社会历史的发展教学实录 部编版必修4
- 产品备案合同范例
- 2024-2025学年小学三年级第二学期心理健康教育计划
- 2024-2025学年全国版图知识竞赛考试题库 (含答案)
- 户外广告制作安装合同模板
- 厂房改公寓出租合同范例
- 2025年呼伦贝尔职业技术学院单招职业适应性测试题库及参考答案
- 污水处理厂SBR工艺的设计说明
- 城市轨道交通行车组织 课件 项目二任务六 车站行车组织作业
- 数字人直播代运营协议
- 2025年北方联合电力有限责任公司招聘笔试参考题库含答案解析
- 关于纳粹德国元首希特勒的历史资料课件
评论
0/150
提交评论