IP地址的合法性及子网判断

IP地址的合法性及子网判断
IP地址的合法性及子网判断

目录

一、课程设计的目的 ................................. 错误!未定义书签。

二、设计要求 (1)

三、课程设计的内容 ................................. 错误!未定义书签。

3.1课题分析与设计 (1)

3.2课题实现 (2)

四、设计总结 (7)

五、程序代码 (8)

一、设计目的

本设计要求编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网。

二、设计要求

1、使用命令行格式

2、判断subnet和ip_addr的合法性

3、判断掩码的合法性

4、在IP地址合法的前提下,判断ip_addr是否属于子网subnet

三、课程设计分析

1.程序大致流程

1)分别判断子网号,掩码和IP地址的基本格式是否合法。

2)如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。该函数同时判别子网号与掩码是否匹配,子网号为全0或全1,主机号为全0,全1.

2.核心代码及说明

1)判断IP地址是否合法。

一般来说,我们先检查最明显的错误。例如,可以先判断IP中”.”个数是否正确;接着,以“.”为标志将IP字符串按节分开;然后,看该IP是否为4段,再判断各节是否是0~255间的整数。关于网络号,主机号全0全1等问题要在后面结合子网掩码一起判断。

这里的关键是怎么将IP字符串以“.”为标志按节分开,这要用到函数strtok (char*strToken,const char*strDelimit).第一个参数是给定的串,第二个参数是分隔符集合,该函数的功能就是以strDelimit中包含的任意字符为分隔符,在strToken中寻找下一个token。每一次调用strtok后,都会在strToken中插入一个NULL字符,所以,如果要读取下一个token,接下来调用strtok时第一个参数用NULL。

char ch[]=“.”; //分隔符

char *token,*dot[4];

int iplen=0;

token=strtok(ip,ch); //以“。”标志将IP字符串按节分开

while(token!=NULL){ //循环进行,直到结束

dot[iplen]=token; //将分开的每段赋值给dot

iplen++;

token=strtok(NULL,ch);

}

这样,IP串的每一段都放到dot数组里了,下面判断是否有非法字符,每一段的值是否在0~255之间,就很容易了。

判断IP地址是否为子网成员,判断子网号与掩码是否匹配,以及子网号,主机号全0,全1问题(iSubA是子网号,iMask是掩码,iIPA是给定的IP地址)。if((iSubA|iMask!=imask){ //说明sub与mask不匹配cout<<”子网号与掩码不匹配,error!”<

return;

}

if((iSubA^iMask)==0){ //说明子网号全1

cout<<”子网号全1,error!”<

return;

}

if((iSubA&iMask)==0){ //说明子网号全0

cout<<”子网号全0,error!”<

return;

}

if((iSubA)==(iIPA&iMask)){ //ip和掩码做“与”运算,结果和子网号比较

if((iIPA|iMask)==iMask){ //说明主机号全0

cout<<”主机号全0,error!”<

return;

}

if((iIPA|iMask)==0xffffffff){ //说明主机号全1

cout<<”主机号全1,error!”<

return;

}

cout<<””<

return;

}

else

cout<<””<

四、设计总结:

这次课程设计,通过上网和到图书馆查阅资料,我更加深入的学习了C 语言,并利用所学知识设计,充分锻炼,增强了我的程序设计能力,使我加深了对理论知识的理解和掌握。充分体会到了理论固然重要,如果没有实践去验证,那也只是停在理论层面上,它的现实意义将无法得到体现。所以,这次课程设计是理论与实践的结合,增强了我在这方面的能力。

通过这次课程设计,我更加深刻的理解了IP地址的合法性,IP地址与子网的从属关系,子网与子网掩码的关系。在判断IP地址是否属于一个子网时,我对IP地址的分类以及子网划分有了更加深刻的理解。

五、程序代码:

#include

#include

#include

#include

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地址不能超过15

if(strlen(c)>15)

{cout<

return; }

int dotnum=0;

//判断IP地址中是否存在非法字符

for(int i=0;i

{ if(isdigit(c[i])==0 && c[i]!='.')

{ cout<

return ; }

if(c[i]=='.')

dotnum++; }

//判断IP地址中只能存在3个分隔符

if(dotnum!=3)

{ cout<

return; }

//判断IP地址中是否存在连续分隔符

for(i=0;i

{ if(c[i]=='.' && c[i+1]=='.')

{ cout<

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<

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

{ 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<

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++)

{ //判断每位的大小不超过255

if(ip[i]>255)

{ cout<

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<

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

{ 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<

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++)

{ //判断每位的大小不超过255

if(subnet[i]>255)

{ cout<

return;

}

}}

//生成子网掩码

void cc()

{ cout<<"子网掩码为:";

int r[32];

for(int i=0;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<

if(n!=3)

{ cout<<"."; }

}

cout<

}

//判断是否和子网相等

void dd()

{ string s="";

for(int i=0;i<4;i++)

{ if((a[i]&ip[i])==subnet[i])

{ s=s+"a"; }

}

//如果存在4个a

cout<<"结果:";

if(s=="aaaa")

{ cout<<"属于同一子网!"<

else

{ cout<<"不属于同一子网!"<

}

void main()

{ cout<<" ************IP地址的合法性及子网的判断*************"<

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<

cout<

cout<<"子网号为:";

for(int j=0;j<15;j++)

{ cout<

cout<

aa(Ip_addr);

bb(Ip_addr);

cc();

ee(sub_net);

dd();

cout<<"是否继续是(其他键)否(n)";

cin>>jj; }

}

1)判断subnet和ip_addr的合法性(注意考虑全面,比如以下IP均为不合法123..2.1

123.23$.2.1

123.12345.2.1

123.23.45.2.1

2)判断掩码的合法性

3)在IP地址合法的前提下,判断ip_addr是否属于子网subnet

#include

#include

#include

void split(char *addr,int *num)

{//将点分十进制的字符串转换为数值数组

char temp[4][10];

int i,j,k,len=strlen(addr);

for(i=0;i<4;i++)

for(j=0;j<10;j++)

{ temp[i][j]='\0'; }

j=0;

k=0;

for(i=0;i

{ if(addr[i]!='.')

{ temp[j][k]=addr[i];

k++; }

else

{ j++;

k=0; }

}

for(i=0;i<4;i++)

{ num[i]=atoi(temp[i]); }

}

int toBinary(int a)

{//将十进制数转换为二进制数

if(a/2==0) return a%2;

return a%2+toBinary(a/2)*10;

}

char * toString(int *a)

{//将二进制的数值数组转换32个字符长的字符指针

char *temp=new char[33];

int i;

bool flag=false;

char *eight=new char(),*seven=new char(),*six=new char(),*five=new char(),*four=new char(), *three=new char(),*two=new char(),*one=new char();

for(i=0;i<4;i++)

{ itoa(a[i]/10000000,eight,10);

itoa(a[i]/1000000%10,seven,10);

itoa(a[i]/100000%10,six,10);

itoa(a[i]/10000%10,five,10);

itoa(a[i]/1000%10,four,10);

itoa(a[i]/100%10,three,10);

itoa(a[i]/10%10,two,10);

itoa(a[i]%10,one,10);

if(flag==true)

{ strcat(temp,eight); }

else

{ strcpy(temp,eight);

flag=true; }

strcat(temp,seven);

strcat(temp,six);

strcat(temp,five);

strcat(temp,four);

strcat(temp,three);

strcat(temp,two);

strcat(temp,one);

}

return temp;

}

int test(char *addr)

{//测试IP等点分十进制数的合法性,返回0则不合法,返回1则合法

int len=strlen(addr);

if(len>15)

{ cout<<"地址总长超过了15!"<

return 0; }

int dotnum=0;

for(int i=0;i

{ if((addr[i]<'0' || addr[i]>'9') && addr[i]!='.')

{

cout<<"地址中包含非法字符!"<

return 0; }

if(addr[i]=='.')

dotnum++; }

if(dotnum>3)

{ cout<<"地址中分隔符只能为3个!"<

return 0; }

for(i=0;i

{ if(addr[i]=='.' && addr[i+1]=='.')

{ cout<<"地址中不能出现连续的分隔符!"<

return 0;

}

}

if(addr[len-1]=='.')

{

cout<<"地址最后位不能为分隔符!"<

return 0;

}

int a[4];

split(addr,a);

for(i=0;i<4;i++)

{ if(a[i]>255 || a[i]<0)

{

cout<<"地址数字不在范围0-255之间!"<

return 0;

}

}

if(a[0]<1)

{ cout<<"地址首位不能为0!"<

return 0; }

return 1;

}

void main(int argc,char * argv[])

{ if(argc!=3)

{ cout<<"请按以下格式输入命令行:ip_test subnet/mask ipaddr"<

}

int i,j=0;

bool flag=false;

char *ipaddr=new char[strlen(argv[2])];

strcpy(ipaddr,argv[2]); //字符串格式的IP地址

char *subnet_mask=new char[strlen(argv[1])];

strcpy(subnet_mask,argv[1]);

char *subnet=new char[16];

char *mask_num=new char[4];

int len=strlen(subnet_mask);

for(i=0;i

{ flag=true;

subnet[j]='\0';

j=0;

continue;

}

if(flag==false)

{ subnet[j]=subnet_mask[i];

j++;

}

else

{ mask_num[j]=subnet_mask[i];

j++;

}

}

mask_num[j]='\0';

cout<<"IP地址测试:";

if(test(ipaddr)==1)

{ cout<

else

{ cout<

return; }

cout<<"子网号测试:";

if(test(subnet)==1)

{ cout<

else

{ cout<

return;

}

int maskn=atoi(mask_num);

cout<<"掩码中1的个数测试:";

if(maskn>0 && maskn<=32)

{ cout<<"个数为:"<

else

{ cout<<"个数为:"<

//将IP地址与子网号转成数值放在数组中

int nbipaddr[4],nbsubnet[4];

split(ipaddr,nbipaddr);//分离,未转成二进制,只是分离成十进制

split(subnet,nbsubnet);

for(i=0;i<4;i++)

{ nbipaddr[i]=toBinary(nbipaddr[i]);//将分离出来的十进制转换为二进制nbsubnet[i]=toBinary(nbsubnet[i]);

}

char *cbipaddr=new char[33];

char *cbsubnet=new char[33];

cbipaddr=toString(nbipaddr);//将二进制数组转换为32位的二进制字符指针cbsubnet=toString(nbsubnet);

//测试是否在子网内,是否需转成二进制比较,可用递归转成二进制(除二取余) for(i=0;i

{ if(cbipaddr[i]!=cbsubnet[i])

{ cout<<"IP地址:"<

return;

}

}

cout<<"IP地址:"<

}

IP地址与子网划分练习

1) What is the network address for the address 96.2.3.16 (地址9 6 .2 .3 . 16的网络地址是什么)? A. 96.2.0.0 B. 96.2.3.0 C. 96.0.0.0 D. Can ’t tell 2) What class of address is 190.233.27.13 (190.233.27.13是何类地址)? A. Class A B. Class B C. Class C D. Class D 3) How many bits are in the default subnet mask for the address 219.25.23.56 (在地址219.25.23.56的默认子网掩码中有多少位)? A. 8 B. 16 C. 24 D. 32 4) How many hosts are supported by a Class C network address, without subnetting (C类网络地址在没有子网的情况下支持多少个主机)? A. 254 B. 65,000 C. 255 D. 16,000 5) What is the default mask for a Class B network (B类网络的默认掩码是什么)? A. 255.0.0.0 B. 255.255.255.0 C. 255.255.0.0. D. 255.225.0.0 6) Approximately how many unique networks are possible with a Class B address (使用B类地址大约可以有多少个不相同的网络)? A. 254 B. 16K C. 65K D. 2M 7) What is the decimal value of the binary number 11 0 0 1 0 11 (二进制数11 0 0 1 0 11的十进制值是多少)? A. 203 B. 171 C. 207 D. 193 8) What is the binary value of the decimal number 219 (十进制数2 1 9的二进制值是多少)? A. 111 0 1 0 11

IP地址的合法性和子网判断

计算机网络课程设计报告 题目:IP地址的合法性及子网判断 学生姓名: 学号: 专业班级: 同组姓名: 指导教师: 设计时间:

目录 一、课程设计目的和意义 (1) 1.1设计目的 (1) 1.2设计的意义 (1) 二、课程设计的内容和要求 (2) 三、课程设计的相关技术 (3) 3.1 课程设计的运行环境 (3) 3.2 IP地址相关概念和知识的回顾。 (3) 3.3 特殊的IP地址形式 (4) 3.4 子网的划分 (5) 四、课程设计过程 (6) 4.1程序大致设计过程: (6) 4.2实验流程图 (6) 五、部分程序运行结果 (9) 六、课程设计小结 (11) 七、参考文献 (15)

附录一:源代码 (15) 一、课程设计目的和意义 1.1设计目的 通过计算机网络课程设计,让我们学会处理几种常用计算机网络问题的基本处理方法,掌握计算机网络的基本原理,使我们在面对不断变化的技术时,具有跟踪,学习的基础与能力。 掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。并判断该地址是否属于一个给定的子网。 具体而言,关于”IP地址的合法性及子网判断”课程设计题目的目的是:用C/C++语言编写程序,以判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网.从而能够考察我们对IP地址的概念,各类IP地址的区分以及子网划分的理解和掌握程度. 1.2设计的意义 1、有利于基础知识的理解 通过计算机网络的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问

题的基本态度与基本能力。让学生接触了程度设计,就能真正理解,从而进一步打破计算机的神秘感。 2、有利于逻辑思维的锻炼 程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。 3、有利于与其他学科的整合 在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。在信息技术课中整合其它学科的知识,发挥信息技术的优势。 4、有利于治学态度的培养。 程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。有助于严谨治学、一丝不苟的科学精神的培养,以及不怕失败、百折不挠品格的锻炼。 二、课程设计的内容和要求 在掌握IP地址的表示方法以及子网划分方法的基础上,并以计算机网络中

IP子网掩码划分及设置

IP子网掩码划分及设置 定长子网掩码: 一、子网掩码的计算 TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对IP地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负担:第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网络负担。 因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在:如何减少网络地址。于是IP网络地址的多重复用技术应运而生。通过复用技术,使若干物理网络共享同一IP网络地址,无疑将减少网络地址数。 子网编址(subnet addressing)技术,又叫子网寻径(subnet routing),英文简称subnetting,是最广泛使用的IP网络地址复用方式,目前已经标准化,并成为IP地址模式的一部分。 32位的IP地址分为两部分,即网络号和主机号,分别把他们叫做IP地址的“网间网部分” 和“本地部分”。子网编址技术将“本地部分”进一步划分为“物理网络”部分和“主机”两部分,其中“物理网络”部分用于标识同一IP网络地址下的不同物理网络,常称为“掩码位”、“子网掩码号”,或者“子网掩码ID”,不同子网就是依据这个掩码ID来识别的。 按IP协议的子网标准规定,每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网络部分和子网掩码号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。 例如二进制位模式:11111111 11111111 11111111 00000000中,前三个字节全1,代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代表对应IP地址中最后的一个字节为主机地址。为了使用的方便,常常使用“点分整数表示法”来表示一个IP地址和子网掩码,例如B类地址子网掩码(11111111 11111111 11111111 00000000)为:255.255.255.0。 IP协议关于子网掩码的定义提供一定的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的路由器支持在子网中使用低序或无序的位,因此在实际应用中通常各网点采用连续方式的子网掩码。像255.255.255.64和255.255.255.160等一类的子网掩码不推荐使用

判断IP地址合法性

XXXX大学 计算机网络实习报告 设计题目判断IP地址合法性 学生专业班级 学生姓名(学号) 指导教师 完成时间 2010年5月25日 实习(设计)地点信息楼139机房 2010 年5月25日 一、实习题目 编写一个判断IP地址是否合法的计算机程序,如果合法给出其子网号。 二、原理概述 所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址“00000000000000001”,这么长的地址,人们处理起来也太费劲了。为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。于是,上面的IP地址可以表示为“,这显然比1和0容易记忆得多。 将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案:将IP地址空间划分成5种不同的类别,每一类具有不同的网络号位数和主机号位数。 32位IP地址的空间划分 IP地址分类 1.A类IP地址 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围 00000000 00000000 00000001 - 01111110 )。可用的A类网络有126个,每个网络能容纳1677214个主机。 2.B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围 00000001 00000000 00000001 - )。可

IP地址与子网划分 类地址

IP地址与子网划分讲解

A类网络地址 1.0.0.0到126.0.0.0 0.0.0.0和127.0.0.0保留 B类网络地址 128.1.0.0到191.254.0.0 128.0.0.0和191.255.0.0保留 C类网络地址 192.0.1.0到223.255.254.0 192.0.0.0和223.255.255.0保留 D类网路地址 224.0.0.0到239.255.255.255用于多点广播 E类网络地址 240.0.0.0到255.255.255.254保留 255.255.255.255用于广播 简介 IP地址分为五类: ·A类用于大型网络(能容纳网络126个,主机1677214台)·B类用于中型网络(能容纳网络16384个,主机65534台)·C类用于小型网络(能容纳网络2097152个,主机254台)·D类用于组播(多目的地址的发送)

·E类用于实验 另外,全零(0.0.0.0.)地址指任意网络。全1的IP地址(255.255.255.255)是当前子网的广播地址。 在因特网中,每台计算机的每个连接都有一个由授权单位分配的用于彼此区别的号码,即IP地址。IP地址采用层次结构,按照逻辑结构划分为两个部分:网络号和主机号。网络号用于识别一个逻辑网络,而主机号用于识别网络中的一台主机的一个连接。因此,IP地址的编址方式携带了明显的位置消息。 一个完整的IP地址由个字节,即32位数字组成,为了方便用户理解和记忆,采用点分十进制标记法,中间使用符号“.”隔开不同的字节。 例如:采用32位形式的IP地址如下 00001010 00000000 00000000 00000001 采用十进制数的形式如下 10.0.0.1 A类地址 (1) A类IP地址。由1个字节的网络地址和3个字节的主机地址,网络 地址的最高位必须是“0”。 如:0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX(X代表0或1)(2)A类IP地址范围:1.0.0.1---126.255.255.254 (3)A类IP地址中的私有地址和保留地址: ① 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。 范围(10.0.0.1---10.255.255.254) ② 127.X.X.X是保留地址,用做循环测试用的。 B类地址 (1) B类IP地址。由2个字节的网络地址和2个字节的主机地址,网络地 址的最高位必须是“10”。 如:10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX(X代表0或1)(2) B类IP地址范围:128.0.0.1---191.255.255.254。 (3) B类IP地址的私有地址和保留地址 ① 172.16.0.0---172.31.255.254是私有地址是我可以使用的IP地

ip地址的合法性及子网判断

实验九:IP地址的合法性及子网判断 #include #include #include #include //类结构 class ipTest{ char ip[15]; //定义ip数组,存放ip地址 char subnetPlusMask[18]; //定义subnetPlusMask数组,存放子网号和子网掩码中1的个数 char subnet[18]; //定义subnet数组,存放子网号 char TempIp[15]; //定义TempIp数组,存放临时的ip地址 char TempSub[18]; //定义TempSub数组,存放临时的子网号 int mask; //定义整型mask,存放子网掩码中1的个数 bool maskIsValid;//定义布尔值maskIsValid,存放判断mask真值的变量 public: ipTest(char *,char *); //定义ipTest函数 ipTest(){}; bool NoIllegalChar(char *); //非法字符的判断 bool ipIsValid(char *); //判断IP地址是否合法 bool subnetIsValid(char *); //判断子网号是否合法 void belong(); //判断IP是否为子网成员 print();//定义输出函数print }; //主函数 void main(int argc,char *argv[]) { if(argc != 3) { //判断参数格式是否正确 cout <<"Please input command: ip_test subnet/mask ip" ; return; } else {

IP地址合法性判断及子网检测_实验报告

一. 实验目的 1.加深对IP地址及subnet的认识; 2.了解IP地址的划分; 3. 了解subnet的作用和产生因素,subnet的划分; 4. 实际操作编写规则,匹配IP和subnet,加深理解 二. 实验环境(软件、硬件及条件) 1.软件 操作系统:Windows 7(Windows NT以上版本皆可) 编程环境:Microsoft Visual Studio 2008(兼容MS VS2005,亦可使用VC6.0等)编程语言:C++ 测试环境: MS-DOS 2.硬件 现阶段常见PC 三. 实验方法 Part 1实验原理 我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网,每个网络中的计算机通过其自身的IP地址而被唯一标识的,据此我们也可以设想,在Internet上这个庞大的网间网中,每个网络也有自己的标识符。我们把计算机的IP地址也分成两部分,分别为网络标识和主机标识。同一个物理网络上的所有主机都用同一个网络标识,网络上的一个主机(包括网络上工作站、服务器和路由器等)都有一个主机标识与其对应IP地址的4个字节划分为2个部分,一部分用以标明具体的网络段,即网络标识;另一部分用以标明具体的节点,即主机标识,也就是说某个网络中的特定的计算机号码。另一方面,只有在一个网络号下的计算机之间才能"直接"互通,不同网络号的计算机要通过网关(Gateway)才能互通。但这样的划分在某些情况下显得并十分不灵活。为此IP网络还允许划分成更小的网络,称为子网(Subnet),这样就产生了子网掩码 1. IP的寻址规则 (1).网络寻址规则 A、网络地址必须唯一。 B、网络标识不能以数字127开头。在A类地址中,数字127保留给内部回送函数。

ip地址分类及子网划分

国际规定: 把所有的IP地址划分为A,B,C,D,E A类地址: 范围从0-127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的。因此 A类地址的范围其实是从1-126之间。 如:10.0.0.1,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。转换为2进制来说,一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围从0.0.0.1到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机(2的24次方的主机数目)。 以子网掩码来进行区别: :255.0.0.0. B类地址: 范围从128-191,如172.168.1.1,第一和第二段号码为网络号码,剩下的2段号码为本地计算机的号码。转换为2进制来说,一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到 191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。 以子网掩码来进行区别:255.255.0.0 C类地址: 范围从192-223,如192.168.1.1,第一,第二,第三段号码为网络号码,剩下的最后一段号码为本地计算机的号码。转换为2进制来说,一个C类IP地址

由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到 223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。 以子网掩码来进行区别:255.255.255.0 D类地址: 范围从224-239,D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 E类地址: 范围从240-254,以“110”开始,为将来使用保留。全零(“ 0.0. 0.0”)地址对应于当前主机。全“1”的IP地址(“ 255.255. 255.255”)是当前子网的广播地址。 在日常网络环境中,基本是都在使用B,C两大类地址,而ADE这3类地址都不打可能被使用到。 从上述描述中,就可以看到有很多朋友会犯的一个错误,就是把192开头的IP地址设置成B类地址,虽然说在局域网中的网络通讯并不会受到影响,但事实上是不规范的一种划分行为。 子网掩码的简单叙述: 子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

IP地址合法性判断及子网判断课设

课程设计任务书 学院信息科学与工程学院专业计算机科学与技术 学生姓名学号 设计题目IP地址合法性判断及子网判断 内容及要求: 判断IP和子网是否合法,接着将IP地址一位位与子网掩码做与运算,看结果是否和子网相等来判断IP地址是否属于某一个网络。 设计总要求: 实现判断输出命令行中的IP是否合法,掩码是否合法以及ip_addr是否是属于子网subnet。将IP地址一位位与子网掩码做与运算,看结果是否和子网相等来判断IP地址是否属于某一个网络。在这个设计中考虑到了以上的种种情况,根据用户输入的IP地址,掩码和子网,程序可以判断输入的IP地址,掩码和子网是否正确以及ip_addr是否是属于子网subnet。 在判断不合法IP时要考虑全面,比如以下情况均属于不合法 连续两个 . 123..2.1.2 含有非法字符 123.23$.2.1 每部分长度超过3 123.2345.2.1 含有超过三个的. 123.23.45.2.1 每部分大于255 256.123.3.3 进度安排: 第1周:布置课程设计任务;查阅资料;分组进行程序设计。 第2周:程序设计和调试;程序验收;答辩;上交课程设计报告。 指导教师(签字): 2011 年 7 月 4日学院院长(签字): 年月日

目录 一课程设计目的和意义 (3) 1.1设计目的 (3) 1.2设计的意义 (3) 二协议的内容说明,关键技术的说明 (4) 2.1 ip地址简介 (4) 2.2 子网掩码简介 (5) 2.3 ip地址的计算 (6) 2.4 子网划分简介 (7) 3.1主程序设计..................................................................................... (8) 3.2验证ip地址合法性 (8) 3.3验证ip是否属于某个子网 (9) 3.4代码 (10) 四程序的运行和调试结果 (19) 运行结果 (19) 五课程设计小结 (21) 六参考文献 (21)

IP地址和子网划分练习题(整理带答案)

IP地址和子网划分练习题(整理带答案)

1. 19 2.168.1.0/24 使用掩码255.255.255.240 划分子网,其可用子网数为(),每个子网内可用主机地址数为(A) A. 14 14 B. 16 14 C. 254 6 D. 14 62 2. 子网掩码为255.255.0.0 ,下列哪个IP 地址不在同一网段中( C) A. 172.25.15.201 B. 172.25.16.15 C. 172.16.25.16 D. 172.25.201.15 3. B类地址子网掩码为255.255.255.248 ,则每个子网内可用主机地址数为(C) A. 10 B. 8 C. 6 D. 4

4. 对于 C 类IP地址,子网掩码为25 5.255.255.248 ,则能提供子网数为(C ) A. 16 B. 32 C. 30 D. 128 5. 三个网段192.168.1.0/24 ,192.168.2.0/24 ,192.168.3.0/24 能够汇聚成下面哪个网段(D) A. 192.168.1.0/22 B. 192.168.2.0/22 C. 192.168.3.0/22 D. 192.168.0.0/22 6.IP 地址219.25.23.56 的缺省子网掩码有几位?C A.8 B.16 C.24 D.32 7.某公司申请到一个C 类IP 地址,但要连接6

个的子公司,最大的一个子 公司有26 台计算机,每个子公司在一个网段中,则子网掩码应设为?D A.255.255.255.0 B.255.255.255.128 C.255.255.255.192 D.255.255.255.224 8.一台IP 地址为10.110.9.113/21 主机在启动时发出的广播IP 是? B A.10.110.9.255 B.10.110.15.255 C.10.110.255.255 D.10.255.255.255 9.规划一个C 类网,需要将网络分为9 个子网,每个子网最多15 台主机, 下列哪个是合适的子网掩码?(D) A.255.255.224.0 B.255.255.255.224 C.255.255.255.240 D.没有合适的子网掩码

IP地址合法性判断及子网检测_大学课程设计实验报告

理工学院 实验报告 实验名称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,亦可使用VC6.0等) 编程语言:C++ 测试环境:MS-DOS 2.硬件 现阶段常见PC 四.实验方法 Part 1 实验原理 我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网,每个网络中的

IP地址的合法性及子网判断

第三章IP地址的合法性及子网判断 3.1 课程设计目的 本设计要求编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定子网。从而考察读者是否对IP地址概念及其子网划分有非常清楚的认识。 3.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_test 202.113.16.0、24 202.113.16.10.(因为255.255.255.0是连续的24个1,所以用24表示。) 2)判断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。 A类,B类与C类IP地址中主机号权1的地址chengweizhijieguangbo地址,用来使路由器将一个分组以广播方式发送给特定网络上的所有主机。直接广播地址只能作为分组中的目的地址。物理网络采用的使点-点传输方式,分组广播需要通过软件来实现。

IP地址与子网划分讲解

IP地址与子网划分讲解 作者:李石新 IP地址 简介 IP地址分为五类: ·A类用于大型网络(能容纳网络126个,主机1677214台) ·B类用于中型网络(能容纳网络16384个,主机65534台) ·C类用于小型网络(能容纳网络2097152个,主机254台) ·D类用于组播(多目的地址的发送) ·E类用于实验 另外,全零(0.0.0.0.)地址指任意网络。全1的IP地址(255.255.255.255)是当前子网的广播地址。 在因特网中,每台计算机的每个连接都有一个由授权单位分配的用于彼此区别的号码,即IP地址。IP地址采用层次结构,按照逻辑结构划分为两个部分:网络号和主机号。网络号用于识别一个逻辑网络,而主机号用于识别网络中的一台主机的一个连接。因此,IP地址的编址方式携带了明显的位置消息。 一个完整的IP地址由个字节,即32位数字组成,为了方便用户理解和记忆,采用点分十进制标记法,中间使用符号“.”隔开不同的字节。 例如:采用32位形式的IP地址如下 00001010 00000000 00000000 00000001 采用十进制数的形式如下 10.0.0.1 A类地址 (1)A类IP地址。由1个字节的网络地址和3个字节的主机地址,网络地址的最高位必须是“0”。 如:0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX(X代表0或1)(2)A类IP地址范围:1.0.0.1---126.255.255.254 (3)A类IP地址中的私有地址和保留地址: ①10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用, 而被用在局域网络中的地址)。 范围(10.0.0.1---10.255.255.254) ②127.X.X.X是保留地址,用做循环测试用的。 B类地址 (1)B类IP地址。由2个字节的网络地址和2个字节的主机地址,网络地址的最高位必须是“10”。 如:10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX(X代表0或1)(2)B类IP地址范围:128.0.0.1---191.255.255.254。

IP地址的合法性及子网判断课程设计任务书

课程设计任务书 学生姓名:孙晓晨专业班级:信息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 #include #include #include 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地址不能超过15 if(strlen(c)>15) {cout<

IP地址和子网划分练习题

1. 19 2.168.1.0/24 使用掩码255.255.255.240 划分子网,其可用子网数为(),每个子网内可用主机地址数为() A. 14 14 B. 16 14 C. 254 6 D. 14 62 2. 子网掩码为255.255.0.0 ,下列哪个IP 地址不在同一网段中() A. 172.25.15.201 B. 172.25.16.15 C. 172.16.25.16 D. 172.25.201.15 3. B类地址子网掩码为255.255.255.248 ,则每个子网内可用主机地址数为() A. 10 B. 8 C. 6 D. 4 4. 对于C 类IP地址,子网掩码为25 5.255.255.248 ,则能提供子网数为() A. 16 B. 32 C. 30 D. 128 5. 三个网段192.168.1.0/24 ,192.168.2.0/24 ,192.168.3.0/24 能够汇聚成下面哪个网段() A. 192.168.1.0/22 B. 192.168.2.0/22 C. 192.168.3.0/22 D. 192.168.0.0/22 6.IP 地址219.25.23.56 的缺省子网掩码有几位?() A.8 B.16 C.24 D.32 7.某公司申请到一个C 类IP 地址,但要连接6 个的子公司,最大的一个子 公司有26 台计算机,每个子公司在一个网段中,则子网掩码应设为?() A.255.255.255.0 B.255.255.255.128 C.255.255.255.192 D.255.255.255.224

8.一台IP 地址为10.110.9.113/21 主机在启动时发出的广播IP 是?() A.10.110.9.255 B.10.110.15.255 C.10.110.255.255 D.10.255.255.255 9.规划一个C 类网,需要将网络分为9 个子网,每个子网最多15 台主机,下列哪个是合适的子网掩码?() A.255.255.224.0 B.255.255.255.224 C.255.255.255.240 D.没有合适的子网掩码 10.与10.110.12.29 mask 255.255.255.224 属于同一网段的主机IP 地址是 ( ) A.10.110.12.0 B.10.110.12.30 C.10.110.12.31 D.10.110.12.32 11.IP 地址190.233.27.13/16 的网络部分地址是? ( ) A.190.0.0.0 B.190.233.0.0 C.190.233.27.0 D.190.233.27.1 12.没有任何子网划分的IP 地址125.3.54.56 的网段地址是? ( ) A.125.0.0.0 B.125.3.0.0 C.125.3.54.0 D.125.3.54.32

IP地址和子网划分习题教学教材

I P地址和子网划分习 题

IP地址和子网划分习题 1、十进制二进制互化 210 ②10111001 ③145 ④10000111 2、172.202.202.202/20,所在的子网和子网内所有节点分别如何表示? 3、189.189.189.189/18 ,所在的子网和子网内所有节点分别如何表示? 4、192.192.240.240,掩码255.255.255.248,计算网络地址和广播地址。 5、10.11.200.200,掩码 255.255.255.192,计算网络地址和广播地址。 6、195.166.0.42/27,计算网络地址和广播地址。 7、172.25.17.201/20,172.25.15.15/20,172.25.19.26/20, 172.25.23.15/20,四个IP哪个跟其他地址不再同一网段? 8、C类IP地址,掩码255.255.255.224,包含子网数、每个子网主机数各为多少?

9、公司分到一个C类IP,划分6个子公司,每个子公司26台电脑,子网掩码使用什么? 10、规划一个C类网络,9个子网,每个子网15台主机,能否规划出符合要求的网络? 11、192.168.1.0/24 用子网掩码255.255.255.240划分子网,可用子网数和每个子网可用主机数分别是多少? 12、192.168.9.0/24,进行子网规划,要求每个子网有10台主机,用什么掩码合理? 13、200.200.0.0/22,可以由以下哪些网络使用CIDR技术汇聚而成? A、200.200.1.0/24 B、200.200.2.0/24 C、200.200.3.0/24 D、 200.200.4.0/24 14、214.197.27.0网段,划分20个子网,每个子网里5台主机,如何划分?

IP地址合法性判断及子网检测_实验报告

计算机网络课设实验报告Computer Networking Experiment Report 学生所在学院: 学生所在班级: 学生姓名: 学生学号: 指导教师: 教务处 2014年6 月 设计题目:基于C++的IP地址合法性与子网归属判断

一. 设计目的 考察对于IP地址基本概念及子网划分技术的掌握情况。通过编写程序,判断任意输入的IP地址是否合法,并且判定该地址是否属于同步输入给定的子网范围。二.设计内容 1.设计并编写IP地址的合法性判断代码。 2.设计并编写子网掩码的合法性判断代码。 3.设计并编写子网号的合法性判断代码。 4.设计并编写IP地址归属网络的判断代码 三.课设环境(软件、硬件及条件) 1.软件 操作系统:Windows 7(Windows NT以上版本皆可) 编程环境:Microsoft Visual Studio 2008(兼容MS VS2005,亦可使用VC6.0等)编程语言:C++ 测试环境: MS-DOS 2.硬件 现阶段常见PC 四.实验方法 Part 1实验原理 我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网,每个网络中的计算机通过其自身的IP地址而被唯一标识的,据此我们也可以设想,在Internet 上这个庞大的网间网中,每个网络也有自己的标识符。我们把计算机的IP地址也分成两部分,分别为网络标识和主机标识。同一个物理网络上的所有主机都用同一个网络标识,网络上的一个主机(包括网络上工作站、服务器和路由器等)都有一个主机标识与其对应IP地址的4个字节划分为2个部分,一部分用以标明具体的网络段,即网络标识;另一部分用以标明具体的节点,即主机标识,也就是说某个网络中的特定的计算机号码。另一方面,只有在一个网络号下的计算机之间才能"直接"互通,不同网络号的计算机要通过网关(Gateway)才能互通。但这样的划分在某些情况下显得并十分不灵活。 为此IP网络还允许划分成更小的网络,称为子网(Subnet),这样就产生了子网掩码 1. IP的寻址规则 (1).网络寻址规则 A、网络地址必须唯一。 B、网络标识不能以数字127开头。在A类地址中,数字127保留给内部回送函数。 C、网络标识的第一个字节不能为255。数字255作为广播地址。 D、网络标识的第一个字节不能为“0”,“0”表示该地址是本地主机,不能传送。

IP地址分类与子网划分

一 IP 地址概念 IPV4: 32 IPV6: 128 每个B 类网络最多可以拥有216-2台主机 B 类网络数量:64*28个 每个C 类网络最多可以拥有28-2台主机 (254) C 类网络数量:32*216个 为什么减2? ——减掉一个主机号全为0的IP (网络号:主机号部分全为0) ——减掉一个主机号全为1的IP (广播号:主机号部分全为1) 网络号和广播号都不能作为主机IP 地址。 三 划分子网(求网络号、IP 分配范围、广播地址) 子网掩码:二进制形式的IP 的网络号部分全为1,主机号部分全为0 通过子网掩码,屏蔽掉了具体的网络号和主机号,但是可以通过子网掩码看出网 络号位数和主机号位数,从而得出该网络的规模。 1根据子网掩码求网络规模 每个子网最多拥有的主机数量=2n -2 (n 为主机号的位数) 例1: 已知150.58.1.29 /26,求该子网拥有的主机数量 解: /26表示前26位是网络号,则主机号的位数是32-26=6位

拥有的主机数量=26-2=62台主机 例2:已知某网络子网掩码为255.255.248.0,请问该网络能容纳多少台主机?255.255.248.0=11111111.11111111.11111000.00000000 主机号有11位,该网络规模=211-2=2048-2=2046台主机 2 如何根据IP地址和子网掩码判断2个IP地址是否在同一子网中? 方法:将2个IP地址分别与子网掩码做“与”运算(逻辑乘),得出这2个IP 地址的网络号,若网络号相同则在同一子网,否则不同子网。 例3:IP1:192.168.1.44 子网掩码:255.255.255.192 IP2: 192.168.1.131子网掩码:255.255.255.192 请判断这两个主机之间通信是否需要路由器 解:192.168.1.44^255.255.255.192 =11000000. 10101000.00000001.00101100 ^11111111. 11111111 .11111111 . 11000000 =11000000.10101000.00000001. 00000000 =192.168.1.0(是192.168.1.44的网络号) 192.168.1.131^255.255.255.192 =11000000. 10101000.00000001.10000011 ^11111111. 11111111 .11111111 . 11000000 =11000000. 10101000.00000001.10000000 =192.168.1.128(是192.168.1.131的网络号) 这2个IP分别处于不同网络号,所以必须要使用路由器才可以互相通信 例4:10.10.10.29和以下哪个IP在同一子网中?(子网掩码均为255.255.255.224) A 10.10.10.30(00011101)√ B 10.10.10.31(00011111)虽然网络号相同,但主机号全为1,这是一个广播地址,不作为主机IP C 10.10.10.32(00100000)×网络号不同 D 10.10.10.33(00100001)×网络号不同 29=00011100 3 划分子网后,求每个子网可分配的起始IP和终止IP,以及每个子网的网络号和广播号 子网划分: 将网络号199.28.3.0进行子网划分,借用主机号的最高位作为子网号 1)划分1-2个子网:借用主机号最高1位作为网络号,则总的网络号=25位,主机号只有7位,每个子网的规模是27-2台主机 这两个子网号为:199.28.3.00000000和199.28.3.10000000

相关文档
最新文档