计算机网络
课程设计报告班级:计科134
姓名:陈艳红(227)
指导老师:韩亚峰
日期: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.255.0是连续的24个1,所以用24表示)。
判断subnet和ip_addr的合法性。在判断IP地址合法性时要自行编写代码,不要使用任何inet函数。判断时要考虑全面,
比如以下IP地址均不合法:
123..2.1
123.23$.2.1
123.2345.2.1
123.23.45.2.1
3)判断掩码的合法性。
4)在IP地址合法的前提下,判断ip_addr是否属于子网subnet。
5)输出命令行中的ip是否合法,掩码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。
二:概要设计
1属性:int flag//用于判断ip地址,子网掩码是否合法,如果不合法重新输入,flag=1,表示不合法
int i//判断是否存在非法字符
int dian//定义分割符
2 方法:toCharArray()//使用此方法把用户输入的字符串转换成新的字符数组
Length()//返回用户输入的字符串的长度
Split()//拆分字符串
Parseint()//将字符串参数作为有符号的十进制整数进行解析
Concat()//连接字符串
Equals()//比较两个字符串是否相等
3类input()
Iptest()
Subnet()
三:详细设计(由流程图解释)算法思想:主要分为两部分:一:ip地址的合法性
二:是否属于该子网
一:ip地址的合法性:
参考谢希仁编著的计算机网络,
IP地址采用分层结构,由网络号与主机号两部分组成(如下图所示):
网络号主机号IP地址长度为32位,用点分十进制表示,格式为ⅹ.ⅹ.ⅹ.ⅹ,每个ⅹ为8位,每个ⅹ的值为0—255(例如202.113.29.119)—packag中输入ipTest,在class中输入input
4.点击完成,然后把源代码复制到代码窗口中
5.按F5或点击工具栏中的启动按钮运行
图文解说
步骤1 File——new——Java Project
步骤2 如下图(注意其中projrct name中应输入你的程序名)输入完毕后,点击Cancel
步骤3右键单击ipTest——new——class
步骤4 在弹出的对话框中输入:如下图(注意其中package中应输入你的程序名,class输入你程序中的类,但一般输入第一个类的名称)单击cancel
步骤5:把源代码复制到代码区间
步骤6:调试没有错误后点击工具栏中的运行按钮或是按F5键运行
步骤7:根据console中的文字提示进行输入
附录:源代码及注释
package ipTest;
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;i
{if((a[i]'9') && a[i]!='.'){System.out.println("地址中包含非法字符!");flag=1;break;}
}int dian=0;for(int i=0;i
{if(a[i]=='.')dian++;}
if(dian!=3)
{
System.out.println("地址中分隔符只能为3个!");
flag=1;
}
for(int i=0;i