Python subnet 操作物件
subnetcalc.py
class SubnetCalc(object):
def __init__(self, network, mask):
self.network = network.split(".")
self.msk = mask.split(".")
@property
def subnet(self):
return ".".join(self.network) @property
def mask(self):
return ".".join(self.msk) def _MaskToBin(self):
binarymask = ''
for i in self.msk:
binarymask += bin(int(i))[2:].zfill(8)
return binarymask @property
def first(self):
firstIP = self.network.copy()
firstIP[3] = str(int(firstIP[3]) + 1)
return ".".join(firstIP) def specifyIP(self,num):
spec = self.network.copy()
spec[3] = str(num)
return ".".join(spec) def plusNIP(self,num):
nIP = self.first.split(".")
nIP[3] = str(int(nIP[3]) + int(num))
return ".".join(nIP) @property
def broadcastIP(self):
brcstIP = self.network.copy()
fIP = self.first.split(".")[3]
brcstIP[3] = int(fIP) + (int(self.countIP()))
brcstIP[3] = str(brcstIP[3])
return ".".join(brcstIP) @property
def last(self):
lIP = self.broadcastIP.split(".")
lIP[3] = str(int(lIP[3]) - 1)
return ".".join(lIP) def countIP(self):
mask = int('11111111111111111111111111111111',2)
sub_mask = int(self._MaskToBin(),2)
return int(mask ^ sub_mask) - 1
f.write(" pool{\n") f.write(" failover peer \"dhcpfailover\";\n") f.write(" range %s %s;\n" % (subnetHK.plusNIP(5),subnetHK.last)) f.write(" }") f.write("}\n") i += 1f.close()
Python subnet 操作物件的更多相关文章
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- Python 字符串操作
Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符 ...
- Python目录操作
Python目录操作 os和os.path模块os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回但前目录('.') ...
- Python基础篇【第2篇】: Python文件操作
Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...
- Python list 操作
创建列表sample_list = ['a',1,('a','b')] Python 列表操作sample_list = ['a','b',0,1,3] 得到列表中的某一个值value_start = ...
- Python Mongo操作
# -*- coding: utf-8 -*- ''' Python Mongo操作Demo Done: ''' from pymongo import MongoClient conn = None ...
- python数据库操作之pymysql模块和sqlalchemy模块(项目必备)
pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1.下载安装 pip3 install pymysql 2.操作数据库 (1).执行sql #! ...
- [Python学习笔记][第七章Python文件操作]
2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...
- python excel操作总结
1.openpyxl包的导入 Dos命令行输入 pip install openpyxl==2.3.3 这里注意一下openpyxl包的版本问题 版本装的太高有很多api不支持了,所以笔者这里用的是2 ...
- python/ORM操作详解
一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...
随机推荐
- VC 运行时库的引用区别 /MD、/MDd 和 /MT、/MTd和DllMain函数
/MT和/MTd表示采用多线程CRT库的静态lib版本.该选项会在编译时将运行时库以静态lib的形式完全嵌入.该选项生成的可执行文件运行时不需要运行时库dll的参加,会获得轻微的性能提升,但最终生成的 ...
- vite vue插件打包配置
import { defineConfig, UserConfigExport, ConfigEnv } from "vite"; import externalGlobals f ...
- Java流程控制之break、continue、goto
break.continue break在任何循环语句的主体部分,均可用break控制循环的流程.break用于强行退出循环,不执行循环中剩余的语句.(break语句也在switch语句中使用) co ...
- 根据STM32CubeMX软件创建STM32芯片的Altium Designer原理图库教程-转载
(24条消息) 根据STM32CubeMX软件创建STM32芯片的Altium Designer原理图库教程_奥比克_阿彦少爷的博客-CSDN博客_stm32原理图库 1所需软件及环境1.STM32C ...
- Java基础——for循环、while循环
package com.zhao.demo; public class Demo04 { //for循环 /*public static void main(String[] args) { for ...
- E. Permutation Game
https://codeforces.com/contest/1772/problem/E 题目大意就是给一个1~n的全排序列,所有数字都是红色的,两人轮流操作,操作有三种选择,第一是将所有蓝色的数字 ...
- Coursera Programming Languages, Part C 华盛顿大学 Week 3
整个系列课程的最后一小结! 介绍了之前在 interface 中所提到的 subtype 系统以及其与 ML 中 generics 的不同 introduction to subtyping 在之前的 ...
- 【2020NOI.AC省选模拟#9】C. 重复
题目链接 原题解: 通过计数相同的子序列对个数的方式来计算答案. 设$f(i,j)$为$S$的前$i$和$j$个字符的公共子序列对个数. 当$S_i=S_j$时,$f(i,j)=f(i,j-1)+f( ...
- 学习笔记||使用Vue时踩过的坑1.0
vue介绍:https://cn.vuejs.org/v2/guide/ 1.安装npm install时,长时间停留在fetchMetadata: sill mapToRegistry uri ht ...
- php相关知识总结
class Father{ public static function getStatic(){ return new static(); } public static function getS ...