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

判断IP地址的合法性每台计算机都有独⼀⽆⼆的编号,称为ip地址,每个合法的ip地址由‘.’分隔开的4个数字组成,每个数字的取值范围为0--255输⼊⼀个字符串,判断其是否为合法的IP地址,若是输出‘YES’,否则输出‘NO’第⼀种⽅法:p = input()ip = ip.split('.') #split()分割字符串,这⾥以 . 为分割处,⽣成数字列表if len(ip) == 4: #判断列表中元素个数是否为4for i in range(4): #遍历循环if ip[i].isdigit() == False or eval(ip[i]) > 255 or eval(ip[i]) < 0: #判断字符串是否全为数字print('No')break #停⽌循环else:if i == 3: #判断条件到循环最后⼀位print('Yes')else:print('No')'''str.isdigit()如果字符串str只包含数字(包括:Unicode数字,半⾓数字(单字节),全⾓数字(双字节),不包括罗马数字和汉字数字)则返回 True 否则返回 False。
'''第⼆种⽅法 s = input()def f(s):lists = s.split('.')if len(lists) != 4:return 'No'for i in range(4):try:tmp = int(lists[i])if tmp not in range(0,256):return 'No'except:return 'No'return 'Yes'print(f(s))。
IP地址的验证和认证方法

IP地址的验证和认证方法在互联网时代,IP地址起着至关重要的作用。
它是标识一台设备在网络上的唯一地址,通过IP地址我们可以实现设备之间的通信和信息传递。
然而,由于网络的开放性和匿名性,IP地址的验证和认证成为一个关键问题。
本文将探讨IP地址的验证和认证方法,以保障网络安全和数据的传输可靠性。
一、IP地址的验证方法1. IP地址格式验证IP地址由4组数字组成,每组数字范围在0-255之间,格式为X.X.X.X。
为了验证IP地址的有效性,我们可以采用正则表达式进行验证。
例如,正则表达式"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$"可以用于验证IP地址的格式是否正确。
2. IP地址合法性验证除了验证IP地址的格式,还需要验证其合法性。
合法的IP地址需要满足以下条件:首先,不能是保留地址,如127.0.0.1是保留地址用于本地回环测试;其次,不能是特殊地址,如0.0.0.0表示非法地址;最后,不能是私有地址,如10.0.0.0/8,172.16.0.0/12,192.168.0.0/16等用于内部网络的地址段。
3. IP地址可用性验证IP地址的可用性验证是指验证该IP地址是否可以达到目标主机。
常用的方法是通过PING命令来测试IP地址的连通性。
如果PING命令能够收到目标主机的响应,说明IP地址可用;反之,则不可用。
二、IP地址的认证方法1. 基于物理地址(MAC地址)认证MAC地址是网卡或网络适配器的唯一标识符,通过获取设备的MAC地址并与预先存储的MAC地址进行比对,可以实现对IP地址的认证。
这种方法适用于局域网内的设备认证,但不适用于互联网环境下的IP地址认证。
2. 基于数字签名认证数字签名是一种通过公钥和私钥对数据进行加密和验证的方法。
IP 地址的认证可以通过数字签名来实现,即将IP地址和相应的认证信息使用私钥加密生成数字签名,然后将数字签名与公钥一同传输给目标主机,目标主机使用公钥来验证数字签名的有效性。
IP地址种类与子网划分

IP地址、子网掩码详解第一章、IP地址的介绍一、IP地址的分类把整个Internet网堪称单一的网络,IP地址就是给每个连在Internet网的主机分配一个在全世界范围内唯一的标示符,Internet管理委员会定义了A、B、C、D、E五类地址,在每类地址中,还规定了网络编号和主机编号。
在TCP/IP协议中,IP地址是以二进制数字形式出现的,共32bit,1bit就是二进制中的1位,但这种形式非常不适用于人阅读和记忆。
因此Internet管理委员会决定采用一种"点分十进制表示法"表示IP地址:面向用户的文档中,由四段构成的32 比特的IP地址被直观地表示为四个以圆点隔开的十进制整数,其中,每一个整数对应一个字节(8个比特为一个字节称为一段)。
A、B、C类最常用,下面加以介绍。
本文介绍的都是版本4的IP地址,称为IPv4.1、A类地址:网络标识范围1~126,有27 -2=126个网段(减2是因为0不用,127留作它用)主机标识占3组8位二进制数,有224-2=16777216台主机(减2是因为全0地址为网络地址,全1为广播地址)。
缺省子网掩码:255·0·0·0换算成二进制为11111111·00000000·00000000·000000002、B类地址:网络标识范围128~191,有214 =16384个网段主机标识占2组8位二进制数,有216-2=65533台主机,适用于结点比较多的网络。
缺省子网掩码:255·255·0·0 换算成二进制为11111111·11111111·00000000·000000003、C类地址:网络标识范围192~223,有221 =2097152个网段主机标识占1组8位二进制数,有28-2= 254台主机,适用于结点比较少的网络。
IP地址与子网划分

IP地址与子网划分IP地址和子网划分是计算机网络中非常重要的概念。
IP地址是用于标识网络中设备的唯一地址,而子网划分则是将一个网络划分为多个子网,以提高网络管理和安全性。
本文将详细介绍IP地址的分类和子网划分的原理和应用。
一、IP地址的分类IP地址由32位二进制数表示,通常以四个十进制数(例如192.168.0.1)表示。
根据IP地址的规模和功能要求,通常可以分为以下几类:1. A类地址:从1.0.0.0到126.0.0.0,其中第一位为0,适用于大规模网络;2. B类地址:从128.0.0.0到191.255.0.0,其中前两位为10,适用于中等规模网络;3. C类地址:从192.0.0.0到223.255.255.0,其中前三位为110,适用于小规模网络;4. D类地址:从224.0.0.0到239.255.255.255,用于多点广播;5. E类地址:从240.0.0.0到255.255.255.255,保留为将来使用。
不同类别的IP地址可以容纳的主机数量不同,A类地址最多可容纳约16,777,214个主机,B类地址最多可容纳约65,534个主机,C类地址最多可容纳约254个主机。
二、子网划分的原理子网划分是将一个网络划分为多个子网,以便更好地管理和组织网络。
在进行子网划分时,需要使用子网掩码来确定网络地址和主机地址的边界。
子网掩码是一个32位的二进制数,用于将IP地址中的网络部分与主机部分进行划分。
子网掩码中所有网络部分的位都为1,所有主机部分的位都为0。
例如,对于一个C类地址的IP地址192.168.0.1,默认的子网掩码为255.255.255.0,表示前24位是网络部分,后8位是主机部分。
通过对子网掩码进行调整,可以将一个网络划分为多个子网。
例如,将默认的子网掩码255.255.255.0调整为255.255.255.128,表示前25位是网络部分,后7位是主机部分。
这样就将原网络划分为了两个子网,分别可以容纳128个主机。
计算机网络课程设计题目汇总

1. 帧的封装实现
2. 入侵检测初步研究
3. 员工宿舍组网设计
4. DHCP服务器的配置
5.小型HTTP服务器的设计与实现
5.多校区网络互联方案设计
6. 小型企业办公楼局域网构建
7. 组建大型网吧局域网
8. 校园综合大楼组网设计
9.网络安全设计与实施方案
10. 教师公寓组网方案
11. 中小型企业内部局域网组网设计
12. 基于VLAN的小型企业应用
13. 子网与路由器配置
14. 二层交换机组网方案
15. IP地址的合法性及子网判断
16.网络协议分析(HTTP,FTP,DHCP等)
17.网络程序设计
18.IP数据包解析
19.实现局域网内消息的广播发送
20.使用ARP发现局域网内活动主机
21.以太网帧发送,接收及解析
22.端口扫描程序设计
23.基于C/S结构的套接字程序设计(TCP)
24.基于C/S结构的套接字程序设计(UDP)
25.TCP段的发送和接收
26.IP包流量统计
27.简单动态网站设计与实现。
IP地址子网掩码、主机数、判断是否在同一个网内的问题释疑

我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IPA类IP段0.0.0.0 到127.255.255.255B类IP段128.0.0.0 到191.255.255.255C类IP段192.0.0.0 到223.255.255.255XP默认分配的子网掩码每段只有255或0A类的默认子网掩码255.0.0.0一个子网最多可以容纳1677万多台电脑B类的默认子网掩码255.255.0.0一个子网最多可以容纳6万台电脑C类的默认子网掩码255.255.255.0一个子网最多可以容纳254台电脑我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。
如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。
我们来说详细看看吧。
要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。
(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。
打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。
)把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串连续的1和一串连续的0组成的(一共4段,每段8位,一共32位数)。
255.0.0.011111111.00000000.00000000.00000000255.255.0.011111111.11111111.00000000.00000000255.255.255.011111111.11111111.11111111.00000000这是A/B/C三类默认子网掩码的二进制形式,其实,还有好多种子网掩码,只要是一串连续的1和一串连续的0就可以了(每段都是8位)。
如11111111.11111111.11111000.00000000,这也是一段合法的子网掩码。
子网掩码决定的是一个子网的计算机数目,计算机公式是2的m次方,其中,我们可以把m看到是后面的多少颗0。
详解Python判定IP地址合法性的三种方法

详解Python判定IP地址合法性的三种⽅法IP合法性校验是开发中⾮常常⽤的,看起来很简单的判断,作⽤确很⼤,写起来⽐较容易出错,今天我们来总结⼀下,看⼀下3种常⽤的IP地址合法性校验的⽅法。
IPv4的ip地址格式:(1~255).(0~255).(0~255).(0~255)⽅法1:正则表达式判定法最简单的实现⽅法是构造⼀个正则表达式。
判断⽤户的输⼊与正则表达式是否匹配。
若匹配则是正确的IP地址,否则不是正确的IP地址。
复制代码代码如下:^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$下⾯给出相对应的验证ip的正则表达式:\d表⽰0~9的任何⼀个数字{2}表⽰正好出现两次[0-4]表⽰0~4的任何⼀个数字| 的意思是或者1\d{2}的意思就是100~199之间的任意⼀个数字2[0-4]\d的意思是200~249之间的任意⼀个数字25[0-5]的意思是250~255之间的任意⼀个数字[1-9]\d的意思是10~99之间的任意⼀个数字[1-9])的意思是1~9之间的任意⼀个数字\.的意思是.点要转义(特殊字符类似,@都要加\\转义)代码如下:import redef check_ip(ipAddr):compile_ip=pile('^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$') if compile_ip.match(ipAddr):return Trueelse:return False⽅法2:字符串拆解法把ip地址当作字符串,以.为分隔符分割,进⾏判断代码:#!/usr/bin/pythonimport os,sysdef check_ip(ipAddr):import sysaddr=ipAddr.strip().split('.') #切割IP地址为⼀个列表#print addrif len(addr) != 4: #切割后列表必须有4个参数print "check ip address failed!"sys.exit()for i in range(4):try:addr[i]=int(addr[i]) #每个参数必须为数字,否则校验失败except:print "check ip address failed!"sys.exit()if addr[i]<=255 and addr[i]>=0: #每个参数值必须在0-255之间passelse:print "check ip address failed!"sys.exit()i+=1else:print "check ip address success!"if len(sys.argv)!=2: #传参加本⾝长度必须为2print "Example: %s 10.0.0.1 "%sys.argv[0]sys.exit()else:check_ip(sys.argv[1]) #满⾜条件调⽤校验IP函数⽅法3:引⼊IPy类库IPy库是⼀个处理IP⽐较强⼤的第三⽅库IPy库的安装请⾃⾏查找。
IP地址合法性判断及子网检测_实验报告

IP地址合法性判断及子网检测_实验报告实验报告:IP地址合法性判断及子网检测一、实验目的:掌握IP地址的合法性判断方法和子网检测方法,深入理解IP地址和子网的概念,并能够灵活应用于实际网络环境。
二、实验原理:1.IP地址的合法性判断:IP地址是由32位二进制数组成的,采用点分十进制表示法,每8位二进制数组成一段,共4段。
合法的IP地址必须满足以下条件:-每一段的值在0~255之间;-每一段不能以0开头,除非该段的值为0;-每一段不能以255结尾。
2.子网检测:子网是将IP地址划分为多个子网,用于实现网络的划分和管理。
子网检测的核心是判断两个IP地址是否在同一子网内。
判断方法如下:-将两个IP地址与子网掩码进行与运算,得到的结果即为网络地址;-判断两个网络地址是否相同,若相同,则处于同一子网内。
三、实验步骤:1.IP地址合法性判断:-读入一个IP地址;-将IP地址进行切割,得到4段数字;-判断每一段数字是否在0~255之间;-判断每一段是否以0开头或以255结尾;-若所有判断条件均满足,则判定该IP地址为合法地址。
2.子网检测:-读入两个IP地址和一个子网掩码;-将两个IP地址与子网掩码进行与运算,得到两个网络地址;-判断两个网络地址是否相同;-若相同,说明两个IP地址处于同一子网内;-若不同,说明两个IP地址处于不同子网内。
四、实验结果:1.IP地址合法性判断:-输入合法IP地址:192.168.1.1,结果为合法地址;-输入非法IP地址:256.1.1.1,结果为非法地址。
2.子网检测:-输入两个IP地址:192.168.1.10、192.168.1.20,子网掩码为255.255.255.0,结果为处于同一子网内;-输入两个IP地址:192.168.1.10、192.168.2.10,子网掩码为255.255.255.0,结果为处于不同子网内。
五、实验总结:通过本次实验,我们掌握了IP地址的合法性判断方法和子网检测方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络课程设计报告题目: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地址的相关理论知识为基石,运用C/C++语言按如下要求完成程序。
(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.2345.2.1123.23.45.1(3)判断掩码的合法性。
譬如说mask的值为负数或者大与32,这时输入的掩码就不合法。
(3)在IP地址合法,掩码合法以及子网号也合法的前提下,判断ip_addr 是否属于subnet。
(4)输出命令行中的ip是否合法,掩码是否合法,子网号码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。
(5)还可以判断子网号,主机号全0,全1问题。
三、课程设计的相关技术3.1 课程设计的运行环境C++是一种使用非常广泛的计算机编程语言。
C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格.本程序在Windows环境下利用C++语言编写,Microsoft Visual Studio 6.0进行编译。
Visual Studio是微软公司推出的开发环境,Visual Studio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和office插件。
3.2 IP地址相关概念和知识的回顾。
大型的互连网络中应该有一个全局的地址系统,它能够给连接到互联网的每一台主机或者路由器分配一个唯一的全局地址。
TCP/IP协议的网络层使用的地址标识符叫做IP地址,IPv4中IP地址是一个32位的二进制地址。
网络中的每一台主机或者路由器至少有一个IP地址,在Internet中不允许有两个设备具有相同的IP地址。
如果一台主机或者路由器连接到两个或多个物理网络,那么它可以拥有两个或多个IP地址。
IP地址采用分层结构,由网络号与主机号两部分组成(如下图所示):IP地址长度为32位,用点分十进制表示,格式为ⅹ.ⅹ.ⅹ.ⅹ,每个ⅹ为8位,每个ⅹ的值为0—255(例如202.113.29.119)。
根据不同的取值范围,IP 地址可以分为五类,IP地址中的前5位用于标识IP地址的类别,具体的分类规则如下:·A类地址的第一位为0。
·B类地址的前两位为10 .·C类地址的前三位为110。
·D类地址的前四位为1110。
·E类地址的前五位为11110。
五类IP地址的结构如下所示;A类IP地址结构适合用于有大量主机的大型网络。
由于主机号长度为24位,因此每个A类网络的主机IP数理论上为224=16777216。
B类IP地址适合用于一些国际性大公司与政府机构等中等大小的组织。
由于网络IP长度为14位,因此允许有214=16384个不同的B类网络,实际允许连接16382个网络。
C类IP地址适合用于一些小公司与普通的研究机构。
3.3 特殊的IP地址形式(1)直接广播地址A类,B类,C类IP地址中主机号全1的地址称为直接广播地址,用来使路由器将一个分组以广播方式发送给特定网络上的所有主机。
直接广播地址只能作为分组中的目的地址。
物理网络采用的是点—点传输方式,分组广播需要通过软件来实现。
(2)受限广播地址网络号与主机号的32位全位1的地址为受限广播地址,用来将一个分组以广播方式发送给本网的所有主机。
本网的所有主机将接受该分组,路由器则阻挡该分组通过。
(3)“这个网络上的这台主机”地址(4)“这个网络上的特定主机”地址主机或路由器向本网络上的某个特定的主机发送分组,网络号部分为全0,主机号为确定的值。
这样的分组被相知在本网络内部。
(5)回送地址回送地址用于网络软件测试和本地进程见通信。
TCP/IP协议规定网络号为127的分组不能出现在任何网络上;主机和路由器不能为该地址广播任何寻址信息。
3.4 子网的划分人们在早期设计与建设ARPAnet是,没有预料到网络的发展速度如此之快,应用范围如此之广。
当时个人计算机与局域网尚未出现。
所以,研究者在设计Internet地址的编址方案时,主要是针对大型互联的网络结构。
设计IP地址的最初目的是希望每个IP得志都能唯一地、确定地识别一个网络与一台主机,但是这种方法同时也存在着两个主要的问题,即IP地址的有效利用率和路由器的工作效率。
为了解决这个问题,人们提出了子网(subnet)和超网(supernet)的概念。
子网就是一个大的网络划分成几个较小的网络,而每一个小网络都是其自己的地址。
超网就是将一个组织所属的几个C类网络合并成为一个更大地址范围的逻辑网络。
划分子网实际上就是在IP地址系统中增加一个层次。
三级IP地址的表示方法为netID-subnet ID-host ID。
第一级网络号定义了网点的位置;第二级子网号定义了物理子网;第三级主机号定义了主机和路由器到物理网络的连接。
三级层次的IP地址,一个IP分组的路由器的过程分为三步:第一步将分组转发给网点,第二步转发给物理子网,第三步转发给确切的主机。
当三级层次的IP地址提出后,一个很显示的问题是:如何从一个IP地址提取出子网号。
因此,提出了子网掩码(subnet mask)的概念。
子网掩码有时也叫做子网掩码。
子网掩码表示方法:网络号与子网号置1,主机号置0。
如判断某一IP地址是否属于某一子网呢?只需将二进制IP地址与子网掩码按位进行“与”运算。
若“与”运算所得值与给定子网地址一致,则说明该IP地址属于给定的子网。
四、课程设计过程4.1程序大致设计过程:1.分别判断子网号、掩码和IP地址的基本格式是否合法。
2.如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。
该函数同时判别子网号与掩码是否匹配,子网号为全0或全1,主机号为全0、全1.4.2实验流程图如下:1.主流程图图3-1 主流程图2.验证ip地址合法性流程图图3-2 验证ip地址合法性流程图3验证子网掩码合法性流程图图3-3 验证子网掩码合法性流程图4.验证ip是否属于某个子网流程图:开始输入ip地址,子网掩码和子网地址拆分ip地址与子网掩码拆分ip地址和子网掩码进行与运算N结果与子网比较Y结束图3-4 验证ip是否属于某个子网流程图五、部分程序运行结果程序主要运行界面:1)测试格式是否为三段格式如图:分析:程序要求是“程序名子网号/掩码ip地址”格式而这里只有两端造成参数不匹配,出错!分析:虽然格式是三段、子网号无效且掩码是零,其IP地址还是合法的!2)简单判断子网号及掩码长度是否超出范围如图:分析:因为程序里设置的子网号和掩码字符串长度最多是18个字符而这里有20个字符大于18,所以出错!分析:程序中的IP地址字符串最长只有15个而程序中有17个字符大于15个,所以出错!3)测试Ip地址是否合法如图:分析:IP地址不符合格式要求!分析:IP地址段数不是四,所以出错!4)测试子网号与掩码是否匹配如图:分析:子网号转换为二进制:00000001 11000000 00000000 00000000 子网掩码转换成二进制:11111111 10000000 00000000 00000000 从以上可以看出子网号与子网掩码不匹配与输出结果是一样的说明程序算法是正确的!分析:子网号转换为二进制:00000001 10000000 00000000 00000000 子网掩码转换成二进制:11111111 10000000 00000000 00000000 从以上可以看出子网号与子网掩码匹配与输出结果是一样的说明程序算法是正确的!5)测试子网号是否全零或全一如图:六、课程设计小结这次课程设计,感触颇深!课程设计是学生考试前最后一个重要学习环节,是学习深化与升华的重要过程。