课程设计任务书
学生姓名: 孙晓晨 专业班级: 信息0804 指导教师: 杜谦 工作单位: 信息工程学院 题 目: IP地址的合法性及子网判断 初始条件:
Windows XP C++,SOCKET
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写
等具体要求)
1.编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给
定的子网; 2.判断掩码的合法性;
3.在IP地址合法的前提下,判断ip_addr是否属于子网subnet;
4.撰写课程设计说明书。装订后的课程设计说明书不少于10面(含封面、
任务书、目录、正文、参考文献、成绩评定表、封底)。
时间安排:
6月12日 查阅资料、方案论证
6月13日 ~ 6月15日 总体规划, 方案设计、调试
6月16日 撰写课程设计说明书 6月17日 答辩
指导教师签名: 年 月 日
系主任(或责任教师)签名: 年 月 日
#include
int a[4]={0,0,0,0}; //分段存放子网 char Ip_addr[15]; //ip地址 char sub_net[15]; //子网 int ip[4]={0,0,0,0};
int subnet[4]={0,0,0,0}; //分段存放ip地址 int address[4]={0,0,0,0};
int num; //子网掩码 //判断IP是否合法 void aa(char c[15])
{ //判断IP地址不能超过15 if(strlen(c)>15)
{cout< int dotnum=0; //判断IP地址中是否存在非法字符 for(int i=0;i { if(isdigit(c[i])==0 && c[i]!='.') { cout< if(c[i]=='.') dotnum++; } //判断IP地址中只能存在3个分隔符 if(dotnum!=3) { cout< //判断IP地址中是否存在连续分隔符 for(i=0;i if(c[i]=='.' && c[i+1]=='.') { cout< //分割IP地址 void bb(char c[15]) { //判断IP地址中最后不能为分隔符 for(int m=0;m<4;m++) { ip[m]=0; } int len; len=strlen(c); if(c[len-1]=='.') { cout< char temp[4][15]; for(int i=0;i<4;i++) for(int j=0;j<15;j++) temp[i][j]='\\0'; int j=0; i=0; for(int k=0;k if(c[k]!='.') { temp[i][j]=c[k]; j++; } else { i++; j=0; } } for(i=0;i<4;i++) { //判断每位的长度 len=strlen(temp[i]); if(len>3) { cout< switch(len) { case 3: { while(len!=0) { ip[i]+=(temp[i][len-1]-48)*pow(10,3-len); len--; } break; } case 2: { while(len!=0) { ip[i]+=(temp[i][len-1]-48)*pow(10,2-len); len--; } break; } default: { while(len!=0) { ip[i]+=(temp[i][len-1]-48)*pow(10,1-len); len--; } } } } long int num=0; for(i=0;i<4;i++) { //判断每位的大小不超过255 if(ip[i]>255) { cout< //分割网络地址 void ee(char c[15]) { //判断网络地址中最后不能为分隔符 for(int m=0;m<4;m++) { subnet[m]=0; }
相关推荐: