python mac地址计算
思路是10/16进制的转换和字符串的处理
开始造轮子
1、判断是否是mac地址
正则匹配是否符合条件
1 import re
2
3 def isMac(string):
4 preg = re.compile('^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$')
5 ret = preg.match(string)
6 if ret is None:
7 return False
8 else:
9 return True
2、mac转int
替换掉冒号转16进制
1 def macToInt(mac):
2 mac = mac.replace(":", "")
3 return int(mac, 16)
3、int转mac
转回16进制后进行补位和补冒号
1 def intToMac(intMac):
2 # mac地址每段都是2位 不足位数补0 例如:f:23:54 => 0f:23:54
3 if len(hex(intMac)) % 2 != 0:
4 hexStr = '0{0:X}'.format(intMac)
5 else:
6 hexStr = '{0:X}'.format(intMac)
7
8 i = 0
9 ret = ""
10
11 while i <= len(hexStr) - 2:
12 if ret == "":
13 ret = hexStr[i:(i + 2)]
14 else:
15 ret = "".join([ret, ":", hexStr[i:(i + 2)]])
16 i = i + 2
17 return ret
4、获取下n个mac
转成int后进行数值计算
1 def getNextMac(macAddr, n):
2 return intToMac(macToInt(macAddr) + n)
5、获取上n个mac
转成int后进行数值计算
1 def backOldMac(macAddr, n):
2 return intToMac(macToInt(macAddr) - n)
6、mac地址比较
转换为int后进行值比较
1 def compareMac(macA, macB):
2 return macToInt(macA) >= macToInt(macB)
7、mac地址个数计算
转换成int后进行减法运算
1 def calcMacNum(mac_start, mac_end):
2 mac_start = mac_start.upper()
3 mac_end = mac_end.upper()
4 ret = macToInt(mac_end) - macToInt(mac_start) + 1
5 if ret < 0:
6 ret = 0
7 return ret
8、反转mac地址
mac地址的反序化,去掉冒号后反转字符串然后加回冒号
1 def macReverse(mac):
2 info = mac.split(":")
3 info.reverse()
4 return ":".join(info)
python mac地址计算的更多相关文章
- python mac 环境配置
1, Mac安装 HTMLTestRunner,参考:https://blog.csdn.net/walter_chan/article/details/50555123 cd /Library/Py ...
- python mac环境搭建
安装 virtualenv $ sudo pip install virtualenv 然后建立一个测试目录: $ mkdir testvirtual $ cd testvirtual 就可以成功创建 ...
- python mac下使用多进程报错解决办法
使用pychram运行python web,web使用了多进程 mac下运行会提示如下: may have been in progress in another thread when fork() ...
- python mac下安装虚拟环境
Mac 下 Flask 框架 workon命令找不到 ---- 最终解决方案(详解具体实现操作过程中遇到的坑) Mac 下 Flask 的 全网最详细搭建 1.安装virtualenv和virtual ...
- 2. python Mac 安装 dlib
在macOS上: 从Mac App Store安装 XCode(或安装XCode命令行工具)(最低版本是:xcode8 以上) 有 homebrew 安装 有 CMAKE 安装 基础包 :numpy ...
- Web测试入门:Selenium+Chrome+Python+Mac OS
一.环境配置 Chromedriver 下载及环境配置 url:使用WebDriver在Chrome浏览器上进行测试时,需要从http://chromedriver.storage.googleapi ...
- Python mac安装mysqlclient的一个bug
这是一个来自mysql官方的bug,反正我是看不懂. shuais-MBP:wxapp dandyzhang$ pipenv install mysqlclient Installing mysqlc ...
- Mac Python路径总结
Mac 下Python 可以多版本的并存,并且Python的目录也有好几个,不过总体来说,Mac 自带的有python 还是比较方便的 Mac 系统自带的又Python ,可能Python版本需要更新 ...
- mac下selenium+python环境搭建
selenium2+python的环境搭建主要需要python和selenium 1.python mac下自带了python,可以查看版本.当然可以选择安装其它版本的python. 2.seleni ...
随机推荐
- free ebooks all in one
free ebooks all in one pdf / ppt mobi / epub free programming ebooks free IT ebooks open free ebooks ...
- 扒几个 3D 模型备用
前言 在上一篇中,我展示了 OpenGL 开发的基本过程,算是向 3D 世界迈出的一小步吧.对于简单的 3D 物体,比如立方体.球体.圆环等等,我们只需要简单的计算就可以得到他们的顶点的坐标.但是仅仅 ...
- springCloud服务流程
springCloud的服务流程:消费者调用生产者 1.通过接口化的请求调用(指定接口的服务名字和服务地址)只是做定义,并没有真正做到. 2.Feign组件,远程去注册中心找到服务的名字和服务的地址然 ...
- 第40天学习打卡(静态代理 Lambda表达式 线程状态 线程同步 同步方法)
静态代理 package com.kuang.demo03; //静态代理模式总结 //真实对象和代理对象都要实现同一个接口 //代理对象要代理真实角色 //好处: //代理对象可以做很多真实对象 ...
- Java(JDK/Tomcat/Maven)运行环境配置及工具(idea/eclipse)安装
Java (计算机编程语言) Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语 ...
- 为 APK 文件增加右键菜单组实现快捷安装
0.结果 1.需求 迫于每次都要打开 Powershell 手动敲 adb install xxx.apk 太麻烦,就想通过注册表搞一个右键菜单,实现快捷安装 apk 的功能. 最后决定先实现三个功能 ...
- 医学图像 | DualGAN与儿科超声心动图分割 | MICCAI
文章转自微信公众号:「机器学习炼丹术」 作者:炼丹兄(已授权) 联系方式:微信cyx645016617(欢迎交流共同进步) 论文名称:"Dual Network Generative Adv ...
- 180. 连续出现的数字 + MySql + 连续出现数字 + 多表联合查询
180. 连续出现的数字 LeetCode_MySql_180 题目描述 代码实现 # Write your MySQL query statement below select distinct t ...
- FreeBSD 家图谱
https://cgit.freebsd.org/src/tree/share/misc/bsd-family-tree
- C# 基础 - 委托、事件
1. 委托 sequenceDiagram 方法->>委托: 返回值和入参一样 委托->>方法: 调用委托就是调用绑定的方法 delegate int NumTest(int ...