计算机网络课程设计——基于python实现子网划分程序(附源码)

设计题目:子网的划分模拟程序

设计目的:

  1. 巩固和加深课堂所学知识;
  2. 学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;
  3. 通过编写计算机程序模拟网络通信的某些功能,使学生理解并掌握子网划分的基本工作原理及工作过程。

设计任务:(在规定的时间内完成下列任务)

1、任务:设计一个模拟子网划分的程序

2、功能要求:编制程序,输入网络地址和子网掩码,并输入符合要求的主机数目,自动计算出在本网段中可划分出的网段数目,网段地址,子网掩码和本子网段最大容纳的主机数。

*注意:主机位为全0和全1不是有效的IP地址。

具体内容如下:

  • 设计任务与要求;
  • 总体方案与说明;
  • 软件主要模块流程图;
  • 源程序清单与注释;
  • 问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想);
  • 小结与体会

1.设计任务与要求

随着网络技术的逐步普及和快速发展,利用网络已不再是IT行业专业技术人员的专利,它已作为当今人类的一种新的生活方式而逐步深入到课堂。谈到Internet时,IP地址就必须提到,,IP地址是一个比较重要的概念,Internet的许多服务和特点都是通过IP地址来体现的。同时,就意味着需要子网划分,而本课程设计就是通过利用编程语言Python实现ipv4地址的子网划分,通过输入需要划分的ipv4地址和子网掩码,并输入符合要求的主机数目,从而快速实现自动计算出在本网段中可划分出的网段数目,网段地址,子网掩码和本子网段最大容纳的主机数。

2.总体方案与说明

在用Python编写子网的划分模拟程序之前,就要理解到子网划分思路和主机数划分思路,那么首先要了解P 位、M 位、N 位、子网位M、N 差、自动补零、二进制算法、点分十进制 IP 地址、ipv4地址分类的含义。位:代表 bit 即长度,IP 地址由 4 字节 组成,如图 2-1 所示。P 位:网络位,即所给的 IP 对应子网掩码“1”的个数。N 位:主机位,即所给的 IP 对应子网掩码“0”的 个数。M 位:子网位长度,即根据需要,从 N 位借 M 位长度的子网来划分。子网位 M:是长度为 M 位的二进制数。N 差 = 准备划分 IP 地址的 N 位-当前算出划分需要的 N 位。自动补零:补零的个数=需要位长度 - 当前位长度。二进制算法:这里 只用到了+1 和-1。点分十进制 IP 地址:把算出的二进制 IP 地 址每 8 个一取转换成 10 进制数加“.”和/P+M,P+M 即子网掩 码 1 的长度,子网掩码是 P+M 个 1 和 N 个 0 组成。

2bccc39cf8d249c59d6af0fc7e452853.png

 其次还要知道子网划分的基本思想:将原来用于主机编码的二进制位, 从高位(左端)拿出一部分出来用于子网的编号使用,即从主机位中借来进行网络划分,剩下的二进制位用于表达子网中 的主机号,如图 2-2 所示,其次又要考虑到主机位为全0和全1不是有效的IP地址,最后准备开始编写python程序,实现子网划分的功能编写。

a4c888909a8c4f2aab1845e615385f88.png

3.软件主要模块流程图

9c4863c209494db3becfbbd246588c89.png

4.清单与注释

更多完整代码,访问主页看QQ

访问以下链接:

腾讯文档腾讯文档-在线文档https://docs.qq.com/doc/p/71239d69a76f56cf1521717ae6b22c27cf876f10

cf1d16105de24ff2ae08a226d42a3521.png

2d4e2fdfdfc34fd589c20c9381563dda.png

046f24bfa83f4805b2734e2935785e81.png

 bf7fbdf28d1840e7b5f5e243c832413f.png

 5.问题分析与解决方案

5.1问题分析

请将IP网络183.164.128.0/17划分为等长的8个子网,并分别给出每一个子网的子网地址、广播地址、子网掩码、IP 地址总数、可分配IP地址数和可分配IP地址范围。

5.2解决方案

183.164.128.0/17分为8个子网,23=8,因此咱们须要3位来划分子网,183.164.128.0也就是:183.164.10000000.0(第三个位置用8个二进制表示。其余的三个都是十进制)。

把中间加粗的三位用来分配子网,那么前20位为网络地址,后12位为主机地址,分配的子网以下:

183.164.10000000.0,183.164.10010000.0,183.164.10100000.0,183.164.10110000.0,183.164.11000000.0, 183.164.11010000.0, 183.164.11100000.0,  183.164.11110000.0

广播地址:就是前20位网络地址不变,主机地址的12位IP地址都是1—183.164.1XXX1111.255,子网掩码:就是就是前20位网络地址全为1,主机地址的12位IP地址都是0。因此8个子网的子网掩码是同样的——255.255.11110000.0即255.255.240.0

IP总数:是的12位进行组合,也就是212=4096,可分配的IP地址:主机地址全为0是该子网的子网地址,全为1是该子网的广播地址,主机位为全0和全1不是有效的IP地址。212-2=4094。 可分配IP地址范围:子网地址末尾+1——广播地址末尾-1。

结果如下表:

62598b8e1b984101a4d4caf252aa5833.png

5.3调式报告与使用说明

一、通过运行程序,按照“输入样式提示”,输入划分的ip,即:183.164.128.0/17/8,其中,183.164.128.0表示是ipv4地址,17表示掩码,8表示要划分8个子网。计算结果如下:

890f1f2e67f0436dbda6c608e73b7b00.png

               图  5.3-1  当输入合法的ip时,183.164.128.0/17/8子网划分划分程序运行结果截图

 其中考虑到上面所提示过,主机位为全0和全1不是有效的IP地址,故在最大主机位减去2,得到可用的最大ip为4094个。可以看出,计算的所有结果与上节分析表中的结果完全一致。

726d09c731f74989a3b441df7c397127.png

7fdaf88408f946dca7cdfc8f5b8972c4.png

 需要源代码可以加文章中的联系方式。

  • 8
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白不会debug

需要源码打个赏呗~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值