c++实现ip的合法性及子网的判断

c++实现ip的合法性及子网的判断
c++实现ip的合法性及子网的判断

一. 源代码

说明:

源文件语言:C++

文件数:1

源文件名:ipTest.cpp

#include

#include

#include

#include

#include

#include

using namespace std;

//ipTest类定义

class ipTest{

char ip[15]; //用于存放ip地址

char ip_Temp[15]; //用于存放ip地址

char subnet_mask[18]; //用于存放subnet_mask地址

char subnet[18]; //用于存放subnet地址

char subnet_Temp[18]; //用于存放subnet地址

int mask; //用于存放mask(1的个数)

bool maskIsValid; //用于判断的个数是否合适,或是否与subnet匹配

public:

ipTest(char *,char *); //自定义初始化类函数

~ipTest(){}; //析构函数

bool ipIsValid(char *); //判断ip是否合法

bool subnetIsValid(char *); //判断子网号subnet是否合法

bool NoIllegalChar(char *); //ip,subnet地址中非法字符的判断

bool maskIsMatSubnet(int,char *);//判断mask与subnet是否匹配

void AllJudgment(); //判断mask,subnet,ip的合法性问题

void print(); //判断ip是否为子网成员,并输出判断结果

void split(char *,int *); //把单个字符地址转换为十进制数值型地址(含四段)int toBinary(int a); //十进制int型数据转换为二进制int型数据

char * toString(int *a);//把二进制int型数据转换为一个整体的二进制字符型数据};

//main主函数

int main(int argc,char *argv[]) //自动读取数据

{

//cout<<"目录地址:"<

cout<<"subnet_mask : "<

//判断段数是否输入合法

if(argc!=3) //argc表示输入的参数个数,无参数输入时,其值为,因为默认argv[0]总是有的{

cout<<"输入非法!";

return 0;

}

else

{

//先简单判断subnet/mask的长度

if(strlen(argv[1])>18)

{

cout<<"subnet/mask 输入非法!";

system("pause");

return 0;

}

//先简单判断ip的长度

if(strlen(argv[2])>15)

{

cout<<"ip 输入非法!";

system("pause");

return 0;

}

}

ipTest test(argv[1],argv[2]); //实例化类,传入两个参数

test.AllJudgment();//调用函数,判断mask,subnet,ip的合法性问题

system("pause");//系统暂停

return 0;

}

//构造函数

ipTest::ipTest(char *subnet_mask,char *ip)

{

maskIsValid=true; //设置maskIsValid默认为合法

char temp[2];//定义变量

int i,len;

len=strlen(subnet_mask);

/*******************从subnet/mask中分离出subnet地址***************/ for(i=0;i

{

this->subnet[i]=subnet_mask[i];

this->subnet_Temp[i]=subnet_mask[i];

}

subnet_Temp[i]='\0';

subnet[i]='\0';

/**************************判断mask是否为数值************************/

if((len-(i+1)<3&&len-(i+1)>0)) //判断mask是否为一/二位字节

{

if(len-(i+1)==1) //表明mask是一位

{

temp[0]=subnet_mask[i+1];

//判断字符是否为数值型字符

if(!isdigit(temp[0])) //isdigit()为库函数,可以调用

{

cout<<"mask中含有非数字的非法字符,error!"<

maskIsValid=false; //mask不是数值,则设置为false }

}

else if((len-3)==i) //表明mask是二位

{

temp[0]=subnet_mask[i+1];

temp[1]=subnet_mask[i+2];

if(!(isdigit(temp[0]) && isdigit(temp[1])))

{

cout<<"mask中含有非数字的非法字符,error!"<

maskIsValid=false;

}

}

mask=atoi(temp); //自动把数字字符转换为对应的十进制数值的函数if(mask<0 || mask>32)

maskIsValid=false;

}

else //表明mask为空或字节超出范围

{

cout<<"mask为空或超出范围,error!"<

maskIsValid=false; //若mask是三位数,则表明mask输入非法(其实为~32)}

/********************************************************************/

strcpy(this->subnet_mask,subnet_mask); //给subnet_mask赋值

strcpy(this->ip,ip); //给ip赋值

strcpy(this->ip_Temp,ip); //给ip_temp赋值

}

//判断mask,subnet,ip的合法性问题

void ipTest::AllJudgment()

{

//设置标志subnet地址是否合法的bool型变量,并调用subnetIsValid函数判断

bool subnetIsV=subnetIsValid(subnet_Temp);

//设置标记ip地址是否合法的bool型变量,并调用ipIsValid函数判断

bool ipIsV=ipIsValid(ip_Temp);

//设置标记mask与subnet地址是否匹配的bool型变量,并调用maskIsMatSubnet函数判断bool maskIsMatSub=maskIsMatSubnet(mask,subnet_Temp);

cout<

/************************判断返回的值是否为真******************/

if(!maskIsValid) //表示返回的maskIsValid是false

{

cout<<"mask输入非法!(mask为整数并在-32范围内)"<

}

else

{

cout<<"mask合法!"<

}

if(!maskIsMatSub)

{

//表示返回的maskIsMatSub是false

cout<<"mask与subnet不匹配,error!"<

}

else

{

cout<<"mask与subnet匹配!"<

}

if(!subnetIsV)

{

//表示返回的subnetIsV是false

cout<<"subnet地址非法!"<

}

else

{

cout<<"subnet地址合法!"<

}

if(!ipIsV)

{

//表示返回的ipIsV是false

cout<<"ip地址非法!"<

}

else

{

cout<<"ip地址合法!"<

}

//都合法

if(maskIsValid && maskIsMatSub && subnetIsV && ipIsV)

{

print();

}

}

//判断mask与subnet是否匹配

bool ipTest::maskIsMatSubnet(int mask,char *subnet_Temp)

{

int nbsubnet[4];//用于放十进制的各段地址

//调用把单个字符地址转换为十进制数值型地址(含四段)的函数,实现转换split(subnet_Temp,nbsubnet);

//subnet是A类地址

if(nbsubnet[0]>0 && nbsubnet[0]<127 && mask<8)

{

//mask的值小于

cout<<"mask与subnet不匹配,error!"<

return false;

}

//subnet是B类地址

if(nbsubnet[0]>=128 && nbsubnet[0]<=191 && mask<16)

{

//mask的值小于

cout<<"mask与subnet不匹配,error!"<

return false;

}

//subnet是C类地址

if(nbsubnet[0]>=192 && nbsubnet[0]<=223 && mask<24)

{

//mask的值小于

cout<<"mask与subnet不匹配,error!"<

return false;

}

//mask与subnet地址匹配

return true;

}

//把单个字符地址转换为十进制数值型地址(含四段)

void ipTest::split(char *chaddr,int *addr)

{

char ch[]=" .";

char *token,*dot[4];

int iplen=0;

token=strtok(chaddr,ch);

while(token!=NULL)

{

dot[iplen]=token;

addr[iplen]=atoi(dot[iplen]);//atoi()函数把字符数值转换为int型数值

iplen++;

token=strtok(NULL,ch);

}

}

//ip,subnet地址中非法字符的判断

bool ipTest::NoIllegalChar(char *ch)

{

int i,len=strlen(ch);

for(i=0;i

{

if(ch[i]-'0'>9 || ch[i]-'0'<0)

{

return false;

}

}

return true;

}

//判断ip是否合法

bool ipTest::ipIsValid(char *ip)

{

/******************把地址分为四段,保存在dot[]中************/

char ch[]=" .";

char ip_one[18];

strcpy(ip_one,ip);

char *token,*dot[4];

int iplen=0;

//库函数strtok(),以ch[]为界限来分段

token=strtok(ip_one,ch);

while(token!=NULL)

{

dot[iplen]=token;

iplen++;

token=strtok(NULL,ch);//此时,第一个参数必须换为NULL

}

/*****************判断地址中的段数***************************/

if(iplen!=4)

{

cout<<"地址"<

return false;

}

/***************判断地址中的'.'是否正确**********************/

int j,t=0;

for(j=0;j<=strlen(ip);j++)

{

if(ip[j]=='.')

{

t++;

}

}

if(t!=3)

{

cout<<"地址"<

return false;

}

/************************判断地址是否含有非法字符,每段地址数值溢出**********************/ int i;

for(i=0;i

{

if(!NoIllegalChar(dot[i]) || atoi(dot[i])>255)

{

if(!NoIllegalChar(dot[i])) //判断含有非法字符

cout<<"地址"<

if(atoi(dot[i])>255) //判断数值溢出

cout<<"地址"<

return false;

}

}

/*****************判断全或全的情况**************************/

int flag=1;//首先设置为非法,即全

for(i=0;i

{

if(atoi(dot[i])!=0)

{

//含有非的字段

flag=0;

}

}

if(flag==1)

{

cout<<"地址"<

return false;

}

flag=1;//首先设置为非法,即全

for(i=0;i

{

if(atoi(dot[i])!=255)

{

flag=0;

}

}

if(flag==1)

{

cout<<"地址"<

return false;

}

/**************以下判断ip地址主机号**********************/

int j1=0,j2;

//if(ip==ip_Temp)

{

//首先判断ip是哪类地址

if(atoi(dot[0])>0&&atoi(dot[0])<127) //A类ip地址

{

j1=1; //直接从开始

}

if(atoi(dot[0])==127) //为的特殊号

{

cout<<"ip地址"<

return false;

}

if(atoi(dot[0])>=128&&atoi(dot[0])<=191) //B类ip地址

{

j1=2;

}

if(atoi(dot[0])>=192&&atoi(dot[0])<=223) //C类ip地址

{

j1=3;

}

if(atoi(dot[0])>223&&atoi(dot[0])<255)

{

cout<<"请重新输入ip地址"<

return false;

}

/*

if(atoi(dot[0])==255)

{

cout<<"ip地址"<

return false;

}

*/

j2=j1; //j1用于判断全情况,j1用于判断全情况的起始下标

int flag=1;//首先设置为非法,即主机号全

for(i=j1;i

{

if(atoi(dot[i])!=0)

{

flag=0;

}

}

if(flag==1)

{

cout<<"ip地址"<

return false;

}

flag=1;//首先设置为非法,即全

for(i=j2;i

{

if(atoi(dot[i])!=255)

{

flag=0;

}

}

if(flag==1)

{

cout<<"ip地址"<

return false;

}

}

return true;

}

//判断子网号subnet是否合法

bool ipTest::subnetIsValid(char *subnet)

{

if(!ipIsValid(subnet)) //调用判断Ip的函数ipIsValid()进行判断{

return false;

}

return true;

}

//判断ip是否为子网成员,并输出判断结果

void ipTest::print()

{

char subnet_one[15],ip_one[15];

int nbip[4],nbsubnet[4],i;

strcpy(subnet_one,subnet); //把subnet地址复制给subnet_one

strcpy(ip_one,ip); //把ipt地址复制给ip_one

//split()函数把字符型的地址转换为四段int型的地址

split(subnet_one,nbsubnet); //用subnet_one而非subnet是为了保护subnet地址不被破坏split(ip_one,nbip);

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

{

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

nbsubnet[i]=toBinary(nbsubnet[i]);

}

char *cbip=new char[33];

char *cbsubnet=new char[33];

cbip=toString(nbip);//将二进制数组转换为位的二进制字符指针

cbsubnet=toString(nbsubnet);

for(i=0;i

{

if(cbip[i]!=cbsubnet[i])

{

cout<

//system("pause");

return;

}

}

cout<

//system("pause");

}

//十进制int型数据转换为二进制int型数据

int ipTest:: toBinary(int a)

{

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

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

return a%2+toBinary(a/2)*10; //递归调用

}

//把二进制int型数据转换为一个整体的二进制字符型数据

char * ipTest::toString(int *a)

{

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

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

{

//char *itoa(int value,char *string,int radix)将整数value转换成字符串存入string,radix为转换时所用基数itoa(a[i]/10000000,eight,10); //产生每段二进制字符地址的最高位

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

itoa(a[i]/100000%10,six,10);//a[i]/100000%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

{

//第一次循环时,执行此步骤;同时置flag=true保证以后循环不执行此步

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;

}

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地址与子网划分讲解

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地址合法性

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地址的合法性及子网判断 #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地址和子网划分练习题(整理带答案)

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地址合法性判断及子网判断 内容及要求: 判断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地址计算与子网划分详解 最近几天有很多的朋友反映对ip网络知识这块了解的不多,尤其是ip地址这块,希望我们能发一期关于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 各类ip地址划分 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是私有地址② 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址, 而你在网络上又没有找到可用的DHCP服务器。就会得到其

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地址与子网划分讲解 作者:李石新 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地址的合法性及子网判断

第三章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地址和子网划分练习题教学教材

I P地址和子网划分练 习题

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 台主机, 下列哪个是合适的子网掩码?()

IP地址管理与子网划分

第1章地址管理和子网划分基础 本章内容: ?IP地址基础。 ?子网划分的目的。 ?基本的固定长度掩码。 1.1 IP地址基础 I P v 4的地址管理主要用于给一个物理设备分配一个逻辑地址。听起来很复杂,但实际上很简单。一个以太网上的两个设备之所以能够交换信息就是因为在物理以太网上,每个设备都有 一块网卡,并拥有唯一的以太网地址。如果设备A向设备B传送信息,设备A需要知道设备B的 以太网地址。像M i c r o s o f t的N e t B I O S协议,它要求每个设备广播它的地址,这样其他设备才能 知道它的存在。I P协议使用的这个过程叫做地址解析协议。不论是哪种情况,地址应为硬件地 址,并且在本地物理网上。 I T专业人员参考R F C 在本章,你将会看到一个术语—R F C。R F C(Request For Comment :请求评注)文档是由 I n t e r n e t团体建立的一个文档。使用它来定义控制I n t e r n e t和相关协议的正常工作的过程、步骤、 标准。例如,R F C 7 9 1的标题为“I n t e r n e t协议”。这个标准定义了I P协议的特征、功能和过程。 R F C文档是免费的,任何R F C的文本文件都可以从I n t e r n e t上下载,其地址为: U R L:/ / w w w. i s i . e d u / i n - n o t e s 作为I T专业人员,你也许会问:“为什么要知道这些内容?”因为R F C文档是I n t e r n e t的官 方文档,你可通过阅读与问题相关的R F C文档来获得满意的答案。 如果一个在以太网上的设备B向令牌环网上的设备C发送信息,会发生什么情况呢?由于它 们在不同的物理网络上,所以不能够直接通信。为了解决设备A和设备B的地址问题,我们使 用一个更高层的协议,如I P v 4。它允许给一个物理设备分配一个逻辑地址。不论使用哪种通信 方法,都可以通过一个唯一的逻辑地址来识别这个设备。在实际通信中,逻辑地址最终还要转 换成物理地址。 1.1.1 地址的分类 I P v 4的设计者目前面临着一个地址管理困境。在I n t e r n e t发展早期,网络很小,但互连设备 却很多,问题是未来的发展。在2 0世纪7 0年代初期,建立I n t e r n e t的工程师们并未意识到计算 机和通信在未来的迅猛发展。局域网和个人电脑的发明对未来的网络产生了巨大的冲击。开

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地址合法性判断及子网检测_实验报告

计算机网络课设实验报告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子网划分例题1详解

IP子网划分 192.168..210.3下有36台计算机,将局域网划分成十个子网,子网掩码和每个子网的IP地址规划: (1)求子网掩码: 192.168.210.3是C类网络,主机号8位,子网数10个,设子网位数m,2m-2>=10,m>=4, 根据主机数最多原则取m等于4(即从主机位中借高4位做子网号,4位共16种组合,可组成16个子网)。则子网掩码是 11111111.1111111.1111111.11110000。即255.255.255.240。 (2)、将192.168.210.0转换成二进制形式: 即11000000.10101000.11010010.00000000。子网号由前4位决定,主机数由IP地址的最后4位决定。

(3)、分配IP地址(以下子网中的第一个IP做网络地址,最后一个IP做广播地址,都不能分配使用) 子网1:子网号(0000)192.168.210.0~192.168.210.15 子网2:子网号(0001)192.168.210.16~192.168.210.31 子网3:子网号(0010)192.168.210.32~192.168.210.47 子网4:子网号(0011)192.168.210.48~192.168.210.63 子网5:子网号(0100)192.168.210.64~192.168.210.79 子网6:子网号(0101)192.168.210.80~192.168.210.95 子网7:子网号(0110)192.168.210.96~192.168.210.111 子网8:子网号(0111)192.168.210.112~192.168.210.127 子网9:子网号(1000)192.168.210.128~192.168.210.143

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

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

学 0121010680221 号: 课程设计 题目IP地址的合法性及子网判断 学院计算机科学与技术学院 专业软件工程 班级1002 姓名王思腾 指导教师刘东飞

2013 年 6 月19 日 目录 1任务书 (3) 2相关知识 (4) 3课程设计分析 (6) 4 程序清单及注释 (9) 5 运行结果分析及结论 (12) 6 心得感悟。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14 7 参考文献 ............................................ 错误!未定义书签。

课程设计任务书 学生姓名:王思腾专业班级:软件1002班 指导教师:刘东飞工作单位:计算机学院 题目四: IP地址的合法性及子网判断 初始条件: (1)学习相关知识 (2)C/C++/VC/VB/JAVA语言 (3)PC机一台 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 在掌握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表示)。 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。 时间安排: 第一、二天:查阅资料,学习算法 第三、四天:编程调试 第五天:书写报告 指导教师签名:年月日

c++实现ip的合法性及子网的判断

一. 源代码 说明: 源文件语言:C++ 文件数:1 源文件名:ipTest.cpp #include #include #include #include #include #include using namespace std; //ipTest类定义 class ipTest{ char ip[15]; //用于存放ip地址 char ip_Temp[15]; //用于存放ip地址 char subnet_mask[18]; //用于存放subnet_mask地址 char subnet[18]; //用于存放subnet地址 char subnet_Temp[18]; //用于存放subnet地址 int mask; //用于存放mask(1的个数) bool maskIsValid; //用于判断的个数是否合适,或是否与subnet匹配 public: ipTest(char *,char *); //自定义初始化类函数 ~ipTest(){}; //析构函数 bool ipIsValid(char *); //判断ip是否合法 bool subnetIsValid(char *); //判断子网号subnet是否合法 bool NoIllegalChar(char *); //ip,subnet地址中非法字符的判断 bool maskIsMatSubnet(int,char *);//判断mask与subnet是否匹配 void AllJudgment(); //判断mask,subnet,ip的合法性问题 void print(); //判断ip是否为子网成员,并输出判断结果 void split(char *,int *); //把单个字符地址转换为十进制数值型地址(含四段)int toBinary(int a); //十进制int型数据转换为二进制int型数据 char * toString(int *a);//把二进制int型数据转换为一个整体的二进制字符型数据}; //main主函数 int main(int argc,char *argv[]) //自动读取数据

相关文档
最新文档