IP地址的合法性及子网判断课程设计任务书
课程设计任务书学生姓名:孙晓晨专业班级:信息0804 指导教师:杜谦工作单位:信息工程学院题目: IP地址的合法性及子网判断初始条件:Windows XPC++,SOCKET要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网;2.判断掩码的合法性;3.在IP地址合法的前提下,判断ip_addr是否属于子网subnet;4.撰写课程设计说明书。
装订后的课程设计说明书不少于10面(含封面、任务书、目录、正文、参考文献、成绩评定表、封底)。
时间安排:6月12日查阅资料、方案论证6月13日~6月15日总体规划, 方案设计、调试6月16日撰写课程设计说明书6月17日答辩指导教师签名:年月日系主任(或责任教师)签名:年月日#include<iostream>#include<ctype.h>#include<math.h>#include<string>using namespace std;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地址不能超过15if(strlen(c)>15){cout<<endl<<"IP地址总长度不能超过15!"<<endl;return;}int dotnum=0;//判断IP地址中是否存在非法字符for(int i=0;i<strlen(c);i++){ if(isdigit(c[i])==0 && c[i]!='.'){ cout<<endl<<"IP地址中含有非法字符!"<<endl;return ;}if(c[i]=='.')dotnum++;}//判断IP地址中只能存在3个分隔符if(dotnum!=3){ cout<<endl<<"IP地址中分隔符只能为3个!"<<endl;return;}//判断IP地址中是否存在连续分隔符for(i=0;i<strlen(c)-1;i++){if(c[i]=='.' && c[i+1]=='.'){cout<<endl<<"IP地址中出现连续的分隔符!"<<endl;return;}}}//分割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<<endl<<"IP地址最后们不能为分隔符!"<<endl;return;}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<strlen(c);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<<endl<<"IP地址每位长度不能超过3!"<<endl;return;}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++){ //判断每位的大小不超过255if(ip[i]>255){cout<<endl<<"IP地址数字不能超过255!"<<endl;return;}}}//分割网络地址void ee(char c[15]){ //判断网络地址中最后不能为分隔符for(int m=0;m<4;m++){subnet[m]=0;}int len;len=strlen(c);if(c[len-1]=='.'){cout<<endl<<"子网号最后们不能为分隔符!"<<endl;return;}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<strlen(c);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<<endl<<"子网号每位长度不能超过3!"<<endl;return;}switch(len){case 3:{while(len!=0){subnet[i]+=(temp[i][len-1]-48)*pow(10,3-len);len--;}break;case 2:{while(len!=0){subnet[i]+=(temp[i][len-1]-48)*pow(10,2-len);len--;}break;}default:{while(len!=0){subnet[i]+=(temp[i][len-1]-48)*pow(10,1-len);len--;}}}}long int num=0;for(i=0;i<4;i++){//判断每位的大小不超过255if(subnet[i]>255){cout<<endl<<"子网号数字长度不能超过255!"<<endl;return;}}}//生成子网掩码void cc(){cout<<"子网掩码为:";int r[32];for(int i=0;i<num;i++){r[i]=1;}for(int j=0;j<32-num;j++){}int p=0;int w[8];int k=0;for(int m=0;m<4;m++){int sum=0;for (int n=0;n<8;n++){w[p]=r[k];sum=sum+w[p]*pow(2,7-n);p++;k++;}p=0;a[m]=sum;}for(int n=0;n<4;n++){cout<<a[n];if(n!=3){cout<<".";}}cout<<endl;}//判断是否和子网相等void dd(){string s="";for(int i=0;i<4;i++){if((a[i]&ip[i])==subnet[i]){s=s+"a";}}//如果存在4个acout<<"结果:";if(s=="aaaa"){cout<<"属于同一子网!"<<endl;}else{cout<<"不属于同一子网!"<<endl;}}void main(){ cout<<" ************IP地址的合法性及子网的判断*************"<<endl;char jj='y';while(jj!='n'){cout<<"请输入IP地址:";cin>>Ip_addr;cout<<"请输入连续1的个数:";cin>>num;cout<<"请输入子网号:";cin>>sub_net;cout<<"IP地址为:";for(int i=0;i<15;i++){cout<<Ip_addr[i];}cout<<endl;cout<<"子网号为:";for(int j=0;j<15;j++){cout<<sub_net[j];}cout<<endl;aa(Ip_addr);bb(Ip_addr);cc();ee(sub_net);dd();cout<<"是否继续是(其他键)否(n)";cin>>jj;}}。
IP地址的合法性与子网判断计算机网络系统设计书
IP地址的合法性及子网判断计算机网络系统设计书第一章概述1.1课程设计目的本设计要求编写程序,判断一个IP地址是否合法,并判断该地址是否是属于一个给定的子网。
从而考察读者是否对IP地址概念及子网划分有非常清楚的认识。
1.2 课程设计的要求在掌握IP 地址的表示方法及指望划分方法的基础上,按如下要求完成程序。
1)命令行格式: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表示。
)2)判断subnet和ip_addr的合法性。
在判断IP地址的合法性是要自行编写代码,不要用任何的inet函数。
判断是要考虑全面,比如以下IP 的地址的合法性:123..2.1123.23¥.2.1123.23.45.2.13)判断掩码的合法性。
4)在IP地址合法的前提下,判断ip_addr是否属于子网subnet。
5)输入命令行中的ip是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr是否属于子网subnet。
第二章具体设计2.1设计思路根据以上的要求,并结合当前的所学的一些知识和技术,我们最终通过另一种方式来实现相同的功能,但代码更加优化,高效,方便用户的窗体程序。
对于以上的要求,设计思路如下:1.程序大致流程1)分别判断子网号,掩码和ip地址的基本格式的合法性。
2)如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。
该函数同时判别子网号和掩码是否匹配,子网号为全0或全1,主机号为全0、全1。
计算机网络课程设计IP地址和子网分割毕业论文
华南农业大学课程设计课程名称:计算机网络项目名称:IP地址与其子网分割开课年级:*开设时间:*指导教师:*辅助指导教师:*学生:*学号:*评语成绩:IP地址与其子网分割摘要:利用该系统实现IP 地址的判断以与其子网的分割。
介绍了IP地址原理以与子网划分原理,并从总体上与功能上给予设计,再详细通过编码实现。
并介绍了自己的部分心得。
关键字:IP地址,子网,子网号,掩码,划分1.引言:IP地址的功用正如在现实生活中给别人写信得首先确定对方的收信地址那样,网络中的两台计算机(确切地说是两个节点——node)间要相互通信必须事先知道对方节点的地址,在INTERNET上,这种标识网络节点的地址信息被称为IP地址(IP ADDRESS),通常简称为IP。
INTERNET上的计算机正是通过这个具有唯一性的网络标识来识别其它的计算机,从而实现信息传输。
利用该系统实现IP 地址的判断以与其子网的分割。
2.总体设计2.1系统设计与基本知识说明A.IP地址的组成与其分类1、管理机构:为了确保IP地址的不重复性,客观上需要一个机构来统一管理,这个机构就是IANA(Internet Assigned Number Authority 国际分配局),她和各个区域的NIC (Network Information Center 网络信息中心)一起,统一分配全球围的IP地址,并且研究、接纳新的IP地址方案,以保证Internet飞速发展的需要。
2、组成:现行的IP地址系统是IPv4,即IP地址第4版,它以32位二进制数来表示Internet上的节点的地址,并照一定的规律划分为网络ID(netid)和主机ID(hostid)两部分。
netid标识同一个物理网络上的所有节点,hostid标识在这个物理网络上的一个节点。
3、子网掩码:在TCP/IP网络上每一个节点都需要一个32位的子网掩码(Subnet Mask),它用于屏蔽IP地址的一部份,使得网络协议(TCP/IP协议组)能够区别netid和hostid。
编写一个判断IP地址是否合法的计算机程序并给出其子网号
一、实习题目编写一个判断IP地址是否合法的计算机程序,如果合法,给出其子网号二、原理概述所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。
按照TCP/IP协议规定,IP地址用二进制来表示,每个IP 地址长32bit,比特换算成字节,就是4个字节。
例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。
为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。
于是,上面的IP地址可以表示为“10.0.0.1”。
将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。
网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。
IP地址的长度为32位,用点分十进制表示,格式为x.x.x.x,每个x表示8位,每个x的值为0~255。
根据不同的取值范围,IP地址可以分为五类,IP地址中的前五位用于标识IP地址的类别,具体的分类规则如下:一个A类IP地址是指,在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。
如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。
A类IP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。
A类IP地址地址范围1.0.0.1-126.255.255.254。
一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码,。
如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。
B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,每个网络所能容纳的计算机数为6万多台。
实验报告
贵州大学实验报告学院:计信学院专业:计算机科学与技术班级:计科081姓名雷明丰学号080701110318 实验组实验时间2011-6-21 指导教师孔广黔成绩实验项目名称IP地址的合法性及子网判断实验目的本实验要求编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网。
从而考察读者是否对IP地址概念及其子网划分有非常清楚的认识。
实验要求在掌握IP地址表示方法及子网划分方法的基础上,按如下要求完成程序:1、命令行格式:ip_test subnet/mask ip_addr2、判断subnet和ip_addr的合法性3、判断掩码的合法性4、在IP地址合法的前提下,判断ip_addr是否属于子网subnet5、输出命令行中的ip是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr是否属于子网subnet。
实验原理一.IP地址简介所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit 地址。
按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP 地址长32bit,比特换算成字节,就是4个字节。
例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。
为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。
于是,上面的IP地址可以表示为“10.0.0.1”。
IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多。
有人会以为,一台计算机只能有一个IP地址,这种观点是错误的。
我们可以指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP地址就是一台计算机;另外,通过特定的技术,也可以使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。
IP地址及子网划分实训任务单
实训任务单
编制部门:信息工程学院编制人:李瑞恩编制日期:2018年9月课程名称计算机网络
项目名称IP地址与子网
划分
训练对象高职一年级学时 1
实训目的1.掌握IP地址与子网划分;
2.掌握IPv6协议的使用。
教学设备及耗
材装有Windows XP操作系统的PC机5台;
交换机1台;直通线5根
实训步骤及要求
(1) 硬件连接
如图3-5所示,将5条直通双绞线的两端分别插入每台计算机网卡的RJ-45接口和交换机的RJ-45接口中,检查网卡和交换机的相应指示灯是否亮起,判断网络是否正常连通。
(2) TCP/IP协议配置
步骤1:
配置PC1计算机的IP地址为192.168.1.10,子网掩码为255.255.255.0;
配置PC2计算机的IP地址为192.168.1.20,子网掩码为255.255.255.0;
配置PC3计算机的IP地址为192.168.1.30,子网掩码为255.255.255.0;
配置PC4计算机的IP地址为192.168.1.40,子网掩码为255.255.255.0;
配置PC5计算机的IP地址为192.168.1.50,子网掩码为255.255.255.0。
步骤2:在PC1、PC2、PC3、PC4、PC5之间用ping命令测试网络的连通性,测试结果填入表3-3。
(3) 划分子网1
步骤1:保持PC1、PC2、PC3三台计算机的IP地址不变,而将它们的子网掩码都修改为255.255.255.224。
步骤2:在PC1、PC2、PC3之间用ping命令测试网络的连通性,测试结果填入表3-4。
IP地址的合法性和子网判断
#include<iostream> #include<ctype.h> #include<math.h> #include<string> usingnamespace std; int a[4]={0,0,0,0}; charIp_addr[15]; char sub_net[15]; intip[4]={0,0,0,0}; intsubnet[4]={0,0,0,0}; int address[4]={0,0,0,0}; int num; // 判断 IP 是否合法 voidaa(char c[15]) { 15!"<<endl;// 分段存放子网//ip 地址// 子网// 分段存放 ip 地址 // 子网掩码// 判断 IP 地址不能超过 15 if(strlen(c)>15) {cout<<endl<<"IP 地址总长度不能超过return; }int dotnum=0;// 判断 IP 地址中是否存在非法字符for(int i=0;i<strlen(c);i++)1)!"<<endl;if(isdigit(c[i])==0 &&c[i]!='.')return ;if(c[i]=='.')dotnum++; }// 判断 IP 地址中只能存在 3 个分隔符if(dotnum!=3){ cout<<endl<<"IP 地址中分隔符只能为 3 个 !"<<endl;return; }// 判断 IP 地址中是否存在连续分隔符for(i=0;i<strlen(c)-1;i++){ if(c[i]=='.'&&c[i+1]=='.'){ cout<<endl<<"IP 地址中出现连续的分隔符return;}}}// 分割 IP 地址void bb(char c[15]){ // 判断 IP 地址中最后不能为分隔符for(int m=0;m<4;m++){ ip[m]=0; }int len;len=strlen(c); cout<<endl<<"IP 地址中含有非法字符 !"<<endl;!"<<endl; if(c[len-1]=='.'){ cout<<endl<<"IP 地址最后们不能为分隔符 return; }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<strlen(c);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<<endl<<"IP 地址每位长度不能超过3!"<<endl;return;}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);255!"<<endl; !"<<endl;len--;}} } }long int num=0;for(i=0;i<4;i++){ // 判断每位的大小不超过 255if(ip[i]>255){ cout<<endl<<"IP 地址数字不能超过return;} }}// 分割网络地址void ee(char c[15]){ // 判断网络地址中最后不能为分隔符for(int m=0;m<4;m++){ subnet[m]=0; }int len;len=strlen(c);if(c[len-1]=='.'){ cout<<endl<<"子网号最后们不能为分隔符return;}3!"<<endl; 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<strlen(c);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<<endl<<"子网号每位长度不能超过return;switch(len){ case 3:{ while(len!=0){ subnet[i]+=(temp[i][len-1]-48)*pow(10,3-len);len--;}break;}case 2:{ while(len!=0){ subnet[i]+=(temp[i][len-1]-48)*pow(10,2-len);len--;}break;}default:{ while(len!=0){ subnet[i]+=(temp[i][len-1]-48)*pow(10,1-len);len--;}255!"<<endl;} }long int num=0;for(i=0;i<4;i++) { // 判断每位的大小不超过 255if(subnet[i]>255){ cout<<endl<<"子网号数字长度不能超过return;}}}// 生成子网掩码void cc(){ cout<<"子网掩码为: ";int r[32];for(int i=0;i<num;i++){ r[i]=1; }for(int j=0;j<32-num;j++) { r[i++]=0; } int p=0;int w[8];int k=0;for(int m=0;m<4;m++){ int sum=0;for (int n=0;n<8;n++){ w[p]=r[k];sum=sum+w[p]*pow(2,7-n);p++;k++;}p=0;a[m]=sum;}for(int n=0;n<4;n++){ cout<<a[n];if(n!=3){ cout<<"."; }}cout<<endl;}// 判断是否和子网相等void dd(){ string s="";for(int i=0;i<4;i++){ if((a[i]&ip[i])==subnet[i]){ s=s+"a";// 如果存在 4 个 a cout<<"结果:";{ cout<<" 属于同一子网!"<<endl;if(s=="aaaa"){ cout<<" 不属于同一子网!"<<endl;void main(){ cout<<" ************IP 地址的合法性及子网的判断*************"<<endl;elsecout<<" 设计成员XXX XX X"<<endl;char jj='y';while(jj!='n')cout<<"请输入IP 地址:";cin>>Ip_addr;cout<<"请输入连续 1 的个数:";cin>>num;cout<<"请输入子网号:"cin>>sub_net;cout<<"IP 地址为:";。
ip合法性课程设计
ip合法性课程设计一、课程目标知识目标:1. 让学生理解IP(知识产权)的基本概念,掌握IP的种类及其法律保护方式。
2. 使学生了解我国关于知识产权的法律体系,理解知识产权保护的重要性。
3. 引导学生掌握判断IP合法性的基本方法,能够分析常见的IP侵权行为。
技能目标:1. 培养学生运用网络资源进行IP信息检索、查询的能力。
2. 提高学生分析、解决实际IP问题的能力,学会运用法律知识保护自身和他人的知识产权。
3. 培养学生的团队协作能力和沟通表达能力,能在小组讨论中积极发表自己的观点。
情感态度价值观目标:1. 培养学生尊重知识、尊重创造的良好品质,树立知识产权保护意识。
2. 增强学生的法治观念,使他们遵纪守法,自觉维护知识产权。
3. 激发学生对科技创新的兴趣,鼓励他们积极参与知识产权保护活动。
本课程旨在帮助学生掌握知识产权的基本知识,提高他们在实际生活中识别、分析和解决IP问题的能力。
针对初中年级学生的认知特点,课程设计注重实践性和趣味性,结合案例分析、小组讨论等多种教学方法,使学生在轻松愉快的氛围中学习。
课程目标具体、可衡量,以便教师能够有效开展教学评估,确保学生达到预期学习成果。
二、教学内容1. 知识产权概述- 知识产权的定义与特点- 知识产权的种类及其保护方式2. 我国知识产权法律体系- 知识产权法律法规简介- 知识产权保护机构及其职能3. IP合法性判断- 常见IP侵权行为分析- 知识产权侵权案例解析- 判断IP合法性的方法与技巧4. 实践操作与案例分析- 网络资源检索与应用- 小组讨论与成果展示- 创意作品保护实践教学内容依据课程目标,结合教材相关章节,进行科学、系统的组织。
在教学过程中,教师将按照以下进度安排教学内容:第一课时:知识产权概述第二课时:我国知识产权法律体系第三课时:IP合法性判断(上)第四课时:IP合法性判断(下)第五课时:实践操作与案例分析三、教学方法本课程将采用以下多样化的教学方法,以激发学生的学习兴趣,提高他们的主动性和实践能力:1. 讲授法:- 教师通过生动的语言和丰富的案例,系统地讲解知识产权的基本知识和法律体系,为学生奠定扎实的理论基础。
计算机网络课程设计验证ip地址附源代码
\理学与信息科学学院计算机网络综合实习报告)题目 IP地址合法验证专业计算机科学与技术学号姓名指导教师日期 2019年10月26日-目录一、任务和目的.............................................................. - 2 -二、设计要求................................................................ - 2 -三、设计内容................................................................ - 2 -、基本原理........................................................... - 2 -、、IP地址合法性.................................................. - 2 -、子网判断....................................................... - 2 -、程序流程图......................................................... - 2 -结果与分析........................................................... - 4 -、源代码............................................................. - 7 -四、改进和建议............................................................. - 14 -五、感悟与心得............................................................. - 14 -六、参考文献............................................................... - 14 -。
IP地址合法性判断及子网检测大学课程设计实验报告
I P地址合法性判断及子网检测大学课程设计实验报告文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]四川理工学院实验报告实验名称IP地址合法性判断及子网检验课程名称计算机科学与技术姓名成绩班级学号日期2013年1月地点计算机学院一.实验目的本设计要求编辑写程序,判断一个ip地址是否合法,并判断该地址是否属于一个给定子网,从而考察读者是否对ip地址概念及其子网划分有非常清楚的认识。
1加深对IP地址及subnet的认识;2.了解IP地址的划分;3. 了解subnet的作用和产生因素,subnet的划分;4. 实际操作编写规则,匹配IP和subnet,加深理解二.设计要求在掌握ip地址表示方法及子网划分方法的基础上,按如下要求完成程序。
1:命令格式:ip_test subnet/mask ip_addr其中,ip_test为程序名;subnet为子网号,mask是一个数值,代表子网掩码连续1的个数,ip_addr是要测试的ip地址。
2:判断subnet和ip_addr的合法性。
在判断ip地址合法性时要自行编代码,不要使用任何inet函数。
判断时要考虑全面。
3:判断掩码的合法性。
4:在ip地址合法的前提下,判断ip_addr是否属于子网subnet。
5:输出命令行中的ip是否合法,掩码是否合法,以及ip_addr是否属于子网subnet.三.实验环境(软件、硬件及条件)1.软件操作系统:Windows xp(Windows NT以上版本皆可)编程环境:Microsoft Visual Studio 2008(兼容MS VS2005,亦可使用等)编程语言:C++测试环境: MS-DOS2.硬件现阶段常见PC四.实验方法Part 1实验原理我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网,每个网络中的计算机通过其自身的IP地址而被唯一标识的,据此我们也可以设想,在Internet上这个庞大的网间网中,每个网络也有自己的标识符。
ip地址的合法性及子网判断
将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案:将IP地址空间划分成不同的类别,每一类具有不同的网络号位数和主机号位数。
1.A类IP地址
一个A类IP地址由1字节的网络地址和3字节主ห้องสมุดไป่ตู้地址组成,网络地址的最高位必须是“0”, 地址范围1.0.0.1-126.255.255.254(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110)。可用的A类网络有126个,每个网络能容纳1600多万个主机。
3.4 子网划分简介
子网的划分,实际上就是设计子网掩码的过程。子网掩码主要是用来区分IP地址中的网络ID和主机ID,它用来屏蔽IP地址的一部分,从IP地址中分离出网络ID和主机ID.子网掩码是由4个十进制数组成的数值"中间用"。"分隔,如255.255.255.0。若将它写成二进制的形式为:11111111.11111111.11111111.00000000,其中为"1"的位分离出网络ID,为"0"的位分离出主机ID,也就是通过将IP地址与子网掩码进行"与"逻辑操作,得出网络号。
