资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机网络课程设计报告计算机网络课程设计报告一题目:判断一题目:判断 ip 地址的合法性及子网判断地址的合法性及子网判断题目要求:题目要求:1 1)命令行格式)命令行格式:ip_test:ip_test subnet/masksubnet/mask ip_addr,ip_addr, ip_testip_test 其中为程序名;其中为程序名;subnetsubnet 为子网号;为子网号; maskmask 是一个数值,代表子网掩码连续是一个数值,代表子网掩码连续 1 1 的个数;的个数;ip_addrip_addr 是要测试的是要测试的 IPIP 地址。地址。 例如,要测试的例如,要测试的 IPIP 地址为地址为 202.114.16.10202.114.16.10,子网号为,子网号为 202.113.16.0202.113.16.0,子网掩码为,子网掩码为 255.255.255.0255.255.255.0,则命令行为,则命令行为 ip_testip_test 202.113.16.0/24202.113.16.0/24 202.114.16.10(202.114.16.10(因为因为 255.255.255.0255.255.255.0 是连续的是连续的 2424 个个 1 1,所以用,所以用 2424 表示表示) )。 2 2)判断判断 subnetsubnet 和和 ip_addrip_addr 的合法性。在判断的合法性。在判断 IPIP 地址合法性时要自行编写代码,不要使用地址合法性时要自行编写代码,不要使用 任何任何 inetinet 函数。判断时要考虑全面,函数。判断时要考虑全面, 3 3)比如以下比如以下 IPIP 地址均不合法:地址均不合法:123.2.1123.2.1 123.23$.2.1123.23$.2.1 123.2345.2.1123.2345.2.1 123.23.45.2.1123.23.45.2.13 3)判断掩码的合法性。)判断掩码的合法性。 4 4)在)在 IPIP 地址合法的前提下,判断地址合法的前提下,判断 ip_addrip_addr 是否属于子网是否属于子网 subnetsubnet。 5 5)输出命令行中的)输出命令行中的 ipip 是否合法,掩码是否合法(可适当给出不合法的原因)以及是否合法,掩码是否合法(可适当给出不合法的原因)以及 ip_addrip_addr 是否属于子网是否属于子网 subnetsubnet。 二:概要设计二:概要设计 1 1 属性:属性:intint flagflag/用于判断用于判断 ipip 地址,子网掩码是否合法,如果不合法重新输入,地址,子网掩码是否合法,如果不合法重新输入,flag=1,flag=1,表表 示不合法示不合法 intint i/i/判断是否存在非法字符判断是否存在非法字符 intint dian/dian/定义分割符定义分割符 2 2 方法:方法:toCharArray()/使用此方法把用户输入的字符串转换成新的字符数组使用此方法把用户输入的字符串转换成新的字符数组 Length()/Length()/返回用户输入的字符串的长度返回用户输入的字符串的长度 Split()/拆分字符串拆分字符串 Parseint()/将字符串参数作为有符号的十进制整数进行解析将字符串参数作为有符号的十进制整数进行解析 Concat()/连接字符串连接字符串 Equals()/比较两个字符串是否相等比较两个字符串是否相等 3 类类input()() Iptest() Subnet() 三:详细设计(由流程图解释)三:详细设计(由流程图解释)NY YY YY NY NY YY NY YY NY读取一个字符串总长不超过 15?return段数=4? 每段的值是否 介于 0 到 255input(subnet)是 否为真Ip import java.util.*; class input Scanner scanner = new Scanner(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;i9) flag=1;break; int dian=0;for(int i=0;i255|num0) System.out.println(“ERROR!地址不在地址不在 0 至至 255 之间!之间!“);/ip 地址及子网掩地址及子网掩 码地址的取值范围码地址的取值范围 flag=1; break; class subnet_mask extends input /*判断子网掩码第一个字节是否为判断子网掩码第一个字节是否为 255*/ int flag2=0;/判断输入的子网掩码是否合法,如果不合法从新输入,判断输入的子网掩码是否合法,如果不合法从新输入,flag=1 表示输入错误表示输入错误;subnet_mask()String dian_s1=s.split(“.“);int first=Integer.parseInt(dian_s10);/把字符数组转换成十进制数把字符数组转换成十进制数if(first!=255)System.out.println(“地址第一字节不是地址第一字节不是 255!“);flag2=1; class iptestpublic static void main(String g) System.out.println(“请输入请输入 IP 地址地址“);input IP=new input();while(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();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; /*判断输入的判断输入的 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);/得出得出 “XX “int x00=Integer.parseInt(split_s0);int x22=Integer.parseInt(split_s20);int and_x=x00/进行与运算进行与运算String right_mask =String.valueOf(and_x); /得出余下的得出余下的“.XX.XX.XX“ 并和之前得出的并和之前得出的“XX“合并合并for(int i=1;i4;i+)int x=Integer.parseInt(split_si);int x2=Integer.parseInt(split_s2i);int and_x12=x/进行与运算进行与运算String and_x11 =String.valueOf(and_x12); right_mask=right_mask.concat(“.“);right_mask=right_mask.concat(and_x11); /将得到的将得到的“XX.XX.XX.XX“和输入的子网掩码比较,如果相同,则证明属于,不同则不属和输入的子网掩码比较,如果相同,则证明属于,不同则不属 于于if(right_mask.equals(s3)System.out.println(“您输入的您输入的 IP 地址属于子网地址属于子网“+subnet.s);elseSystem.out.println(“您输入的您输入的 IP 地址地址(“+IP.s+“)“+“不属于子网不属于子网“+subnet.s);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号