python_子网划分计算器
import ipaddress
class Compute: def __init__(self, network):
self.net = network # 功能1: ip子网划分
def ip(self):
with open ("可用ip地址.txt","w") as tmp_file:
pass
ip_list = [] # 空列表存储ip
# 查询ip个数\
net = ipaddress.ip_network(self.net, strict=False) # 已经计算出来该网段的ip数目
for ip in net:
ip_list.append(str(ip))
print("*" * 60)
print("广播地址为:%s \n网络地址为:%s" % (ip_list[0], ip_list[len(ip_list)-1]))
#print("可用地址为:%s-%s\n可用数量为:%d" % (ip_list[1], ip_list[len(ip_list)-2], len(ip_list)-2))
print("网段掩码为:" + str(ipaddress.ip_network(self.net, strict=False).netmask))
print("网段反码为:" + str(ipaddress.ip_network(self.net, strict=False).hostmask))
print("可用地址详情见-----”可用ip地址.txt“")
for i in net.hosts():
with open ("可用ip地址.txt","a") as file:
file.write(str(i) + "\n")
print("*"*60)
def subnet(self,cidr):
self.cidr = cidr
with open ("subnet.txt","w") as tmp_file:
pass
net = ipaddress.ip_network(self.net,strict=False)
#print(net.netmask)
base_subnet = "/" + str(self.cidr)
num_cidr_ipv4 = 2 ** (32 - int(self.cidr))
num_cidr_ipv6 = 2 ** (128 - int(self.cidr))
ip_list = []
version = int(ipaddress.ip_network(self.net,strict=False).version)
if version == 4:
for ip in net:
subnet = str(ip) + base_subnet
ip_list.append(subnet)
for num in range(0,len(ip_list)//num_cidr_ipv4):
with open ("subnet.txt","a",encoding="utf-8") as file:
file.write(ip_list[num_cidr_ipv4*num] + "\n")
else:
for ip in net:
subnet = str(ip) + base_subnet
ip_list.append(subnet)
for num in range(0,len(ip_list)//num_cidr_ipv6):
with open ("subnet.txt","a",encoding="utf-8") as file:
file.write(ip_list[num_cidr_ipv6*num] + "\n")
while True:
try :
ip = Compute(input("请输入要查询ip地址段:\n"))
ip.ip() # 输出网段相关信息
choose = input("是否进行子网划,是请按1,否请按任意键")
while choose == "1":
try:
ip.subnet(input("请输入要划分的子网id:例如:30\n"))# 输入要划分的子网
print("子网详情见subnet.txt")
break
except ValueError:
print("子网id错误,请重新输入")
except ValueError:
print("ip地址错误,请重新输入")
python_子网划分计算器的更多相关文章
- 【Linux网络基础】网络子网划分基础知识(IP地址,子网)
一. IP地址分类与子网划分基础 1. 什么是IP地址? 常见的ip地址版本为ipv4, ipv6 32位 4 * 8=32位. 32位二进制数字序列组成的数字序列 点分十进制 采用点将32位数字 ...
- IP地址及其子网划分
说实话,弄到子网划分的时候还是及其头晕的,又是这又是那的,现在我们来讲解一下这些东西, 首先我们来介绍一下IP地址,要弄清子网划分,子网掩码首先还是要弄清IP地址的划分 IP地址是给Internet上 ...
- CCNA第三章子网划分,变长子网掩码(VLSM)和TCP/IP排错考试要点学习笔记
1. 子网划分的好处 缩减网络流量; 优化网络性能; 简化管理; 可以更为灵活地形成大覆盖范围的网络. 2. 如何创建子网的步骤 首先,确认所需要的网络ID数; 其次,确认每个子网中所 ...
- CCNA基础 IP地址子网划分
计算机是一个非常神奇的物品,它的核心算法是凌驾于任何代码架构.然而互联网网络( Internat )作为整个生态的基础资源.什么?你还不会子网划分? 没关系,看到子网掩码不要怕.因为它无非就是问你 & ...
- 网络基础之IP地址与子网划分
IP地址 Ipv4地址格式:点分十进制 IP地址的分类 A类 B类 C类: D类:组播 E类: 公共IP地址 私有IP地址 特殊地址 保留地址 子网掩码 什么是子网掩码 CIDR表示法 子网划分 为啥 ...
- 第5章 子网划分和CIDR
第5章 子网划分和CIDR 划分网络 根据A类.B类或C类网络ID来识别网段具有一些局限性,主要是在网络级别之下不能对地址空间进行任何逻辑细分 如果一个IP是一个A类网络.数据报到达网关,然后传输到9 ...
- 网络学习day04_VLSM、子网划分
IP子网划分 首先,在进行子网划分的学习之前,我们先来回顾一下IP地址的相关知识,同时了解一下公有和私有IP地址: 在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门 ...
- IP地址子网划分
广播数据包: 要弄清为何需要划分子网,就需要了解网络传输过程中的广播概念. 经过多年的发展,交换机基本替代集线器,成为网络中主要的端终接入网络的基础设备,这也使得广播包发送数量有明显的减少,但交换机一 ...
- 【转载】IP地址和子网划分学习笔记之《子网掩码详解》
原文地址: https://blog.51cto.com/6930123/2112748 一.子网掩码 IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相 ...
- 【网络】IP子网划分详解
1.IP地址组成 IP地址组成示意图 IP地址由32位二进制组成,32位二进制分成了4字节,每字节8位,字节之间用符.(点)分隔,为了方便 ...
随机推荐
- npm 启动项目报错 Cannot find module '\@babel\compat-data\data\corejs3-shipped-proposals',解决办法
最近升级了系统的node ,webpack 等等,然后今天打开项目,突然启动不起来了~~ 报错信息如下: Module build failed (from ./node_modules/babel- ...
- 脱坑记录--- removeEventListener 移除事件监听失败的经历--vue--keep-alive-----完美实现echarts自适应屏幕~~~~
下面开始讲述事情经过~~~~ 页面代码是这样的 <template> <page-view :title="title"> <div id=" ...
- KingbaseES数据库备份初始化错误处理
KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理: sys_backup.sh脚本按照如下顺序寻找初始化配置文件: [kingbase@postgres ~]$ ...
- Nginx11 openresty连接redis(lua-resty-redis)
1 官网 http://openresty.org/cn/lua-resty-redis-library.html https://github.com/openresty/lua-resty-red ...
- Vue25 mixin
1 简介 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能.一个混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被"混合" ...
- 线程基础知识 04 synchronized锁的四种状态和升级
转https://www.cnblogs.com/mingyueyy/p/13054296.html 1 轻量级锁和重量级锁简要说明 线程调度本来是由操作系统来管理的.现在,操作系统上跑了一个虚拟机J ...
- PDF-XChange Editor
软件简介 PDF-XChange Editor官方版是PDF-XChange的增强版本编辑器,软件完全绿色免费,且功能无限制.PDF-XChange Editor官方版主要提供PDF电子文档的编辑功能 ...
- C++并发-同步并发
1.等待事件 std::mutex m; void wait() { std::unique_lock<std::mutex> lk(m); lk.unlock(); std::this_ ...
- 如何通过Java 代码设置 Word 文档页边距
页边距是指页面的边线到文字的距离.通常可在页边距内部的可打印区域中插入文字和图形,也可以将某些项目放置在页边距区域中(如页眉.页脚和页码等).在我们用的Word文档中,都会设置页边距统一标准格式,页边 ...
- (原创)【B4A】一步一步入门05:控件、公有属性、水平锚定、垂直锚定(控件篇01)
一.前言 前面的教程,已经完整讲述了用B4A开发安卓APP从新建项目到编译发布的完整流程.从本篇开始,我们将会从B4A的细节处着手,一步一步掌握B4A. 从本篇开始的子系列为"控件篇&quo ...