在计算机网络中,常常被子网划分所困扰,如下面这个例子,譬如将130.34.12.64划分成4个子网,通过计算得知每个子网划分16个,则得出:(‘130.34.12.64’, ‘130.34.12.79’), (‘130.34.12.80’, ‘130.34.12.95’), (‘130.34.12.96’, ‘130.34.12.111’), (‘130.34.12.112’, ‘130.34.12.127’),共4个子网。接下来通过算法计算出这个结果

class Solution(object):def add_binary(self, a, b):a, b = int('0b' + a, 2), int('0b' + b, 2)return bin(a + b)[2:]
def test_patch(self):print(self.ip_patch(4, '130.34.12.64/26'))def ip_patch(self, patch, ip):solution = Solution()all_address = pow(2, 32 - IP(ip).prefixlen())per_patch_address = int(all_address / patch)# 计算划分的子网段child_prefix = IP(ip).prefixlen() + int(math.log(all_address / per_patch_address, 2))patch_address_list = []ip_init = IP(ip).strBin()for i in range(patch):# 二进制累加,计算下一跳地址ip_init_next = solution.add_binary(ip_init, bin(per_patch_address - 1)[2:])# 记录当前地址以及下一跳地址ip_range = (str(IP(int(ip_init, 2))), str(IP(int(ip_init_next, 2))))# 将当前地址更新成下一跳地址ip_init = solution.add_binary(ip_init_next, bin(1)[2:])patch_address_list.append(ip_range)return patch_address_list, child_prefix
  • 代码运行结果如下

python实现网段划分相关推荐

  1. python使用什么格式划分语句块-python以什么划分语句块

    语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句: 在代码前放置空格来缩进语句即可创建语句块,语句块中的每行必须是同样的缩进量:(推荐学习:Python视频教程) 缩进:Pyth ...

  2. 网络 网络层 | IP协议、网段划分、公网与私网、路由选择

    网络层是用信子网的边界,是通信设备的协议最高层.其功能是负责地址管理与路由选择(为每一条网络中的数据根据想去的地方选择合适的路径),典型的协议是IP协议,典型的设备是路由器 IP协议 IP协议的工作类 ...

  3. 使用Python获取网段IP个数以及地址清单

    使用Python获取网段的IP个数以及地址清单需要用到IPy的库,而相应的方法主要就是IP. 写小脚本如下: 1 from IPy import IP 2 3 ip = IP('192.168.0.0 ...

  4. 网段划分 + 子网掩码相关计算

    网段划分 IP 地址分为两部分,网络号与主机号 网络号:一个局域网的 IP 地址 主机号:一个局域网内不同主机的 IP 地址 不同的局域网网络号不能相同 同一个局域网的主机号不能相同 传统划分 A类 ...

  5. 计算机网络:网段划分

    子网掩码: 标识:A类地址子网掩码,255.0.0.0, B类地址子网掩码:255.255.0.0: C类地址子网掩码,255.255.255.0:可自定义,如255.255.240.0 (11111 ...

  6. 在同一网段划分不同VLAN

    在同一网段划分不同VLAN 1.在不同网段划分vlan,与在同一网段划分vlan的区别? 划分VLAN其IP地址可能是在一个网段内,其主要作用是为了防止网络风暴 2.设置vlan与设置不同的网段有什么 ...

  7. Kubernetes学习-K8S安装篇-集群安装网段划分

    Kubernetes学习-K8S安装篇-集群安装网段划分 1. 集群安装网段划分 2. 网段IP常用设置 3. 集群安装网段划分注意事项 1. 集群安装网段划分 集群安装时会涉及到三个网段: 宿主机网 ...

  8. 交换机和路由器实现不同网段划分、不同vlan之间的通信、指定组合vlan进行网络通信

    交换机和路由器实现不同网段划分.不同vlan之间的通信.指定组合vlan进行网络通信. 推荐一个画图非常好用的在线免费工具:https://www.processon.com/i/5f58a647e6 ...

  9. 网络基础----子网,IP和网段划分

    1.什么是网络划分,网络划分的目的是为了什么? 在回答这两个问题之前,我们需要知道ip地址的概念,ip地址一共有32比特位,它由两部分构成,网络号和主机号. 两个部分组合在一起就构成了一台主机的地址, ...

最新文章

  1. 数据列表DataList模板之实例
  2. git 撤销修改以及删除文件(亲测最后一个删除后还原)
  3. 《移动优先与响应式Web设计》一1.2 设备不同,功能不同
  4. centos系统中,相同的shell命令,直接在命令行中可以执行,在.sh文件中运行不了的原因
  5. 主成分分析(Principal components analysis)(特征降维)(PCA)-最大方差解释
  6. 算法不会,尚能饭否之栈
  7. 从HighGUI的一段代码中看OpenCV打开视频的方式
  8. os系统配置putty服务器,Mac 电脑安装putty
  9. SIP协议详解(二)
  10. sendip linux发包工具
  11. 低功耗实例——isolation cell及level shifter的选择
  12. 详解去中心化代币发行机制IDO:七大平台的特性与现状 |链捕手
  13. x86服务器能装64位系统吗,x86处理器能装64位系统吗_64位系统装32位的可以么
  14. 有关win10的C:/ProgramFiles\WindowsApps\文件系统错误(12007)问题
  15. 《一周搞定模电》—功率放大器
  16. UI设计师如何脱颖而出 面试过程中要注意什么
  17. 易优CMS:list的基础用法
  18. 上帝掷骰子吗txt_学物理,男女生差异大吗?该怎么学?杭州三位重高老师这么说...
  19. 微软在盈利前确认裁员
  20. 计算机制造技术飞速发展 使用计算机,机械设计制造及其自动化中计算机技术的应用分析...

热门文章

  1. Excel 核对两张表格的差异数据方法
  2. fatal error C1004unexpected end of file found
  3. [转]Java中文处理学习笔记——Hello Unicode
  4. select标签属性resultType
  5. Vue - 添加水印
  6. linux ip被限制网速,网速被限制了怎么_ 网速被限速了怎么办?-192路由网
  7. Esper——进程模型
  8. Ubuntu14.04 安装 Nvidia显卡驱动
  9. IdeaVim-常用操作
  10. Document.referrer