思路是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地址计算的更多相关文章

  1. python mac 环境配置

    1, Mac安装 HTMLTestRunner,参考:https://blog.csdn.net/walter_chan/article/details/50555123 cd /Library/Py ...

  2. python mac环境搭建

    安装 virtualenv $ sudo pip install virtualenv 然后建立一个测试目录: $ mkdir testvirtual $ cd testvirtual 就可以成功创建 ...

  3. python mac下使用多进程报错解决办法

    使用pychram运行python web,web使用了多进程 mac下运行会提示如下: may have been in progress in another thread when fork() ...

  4. python mac下安装虚拟环境

    Mac 下 Flask 框架 workon命令找不到 ---- 最终解决方案(详解具体实现操作过程中遇到的坑) Mac 下 Flask 的 全网最详细搭建 1.安装virtualenv和virtual ...

  5. 2. python Mac 安装 dlib

    在macOS上: 从Mac App Store安装 XCode(或安装XCode命令行工具)(最低版本是:xcode8 以上) 有 homebrew 安装 有 CMAKE 安装 基础包 :numpy ...

  6. Web测试入门:Selenium+Chrome+Python+Mac OS

    一.环境配置 Chromedriver 下载及环境配置 url:使用WebDriver在Chrome浏览器上进行测试时,需要从http://chromedriver.storage.googleapi ...

  7. Python mac安装mysqlclient的一个bug

    这是一个来自mysql官方的bug,反正我是看不懂. shuais-MBP:wxapp dandyzhang$ pipenv install mysqlclient Installing mysqlc ...

  8. Mac Python路径总结

    Mac 下Python 可以多版本的并存,并且Python的目录也有好几个,不过总体来说,Mac 自带的有python 还是比较方便的 Mac 系统自带的又Python ,可能Python版本需要更新 ...

  9. mac下selenium+python环境搭建

    selenium2+python的环境搭建主要需要python和selenium 1.python mac下自带了python,可以查看版本.当然可以选择安装其它版本的python. 2.seleni ...

随机推荐

  1. You, Me & SVG!

    You, Me & SVG! SVG refs code-school-you-me-svg https://www.youtube.com/watch?v=a8Y0L5q63y8 https ...

  2. NGK.IO的智能合约是炒作还是未来商业的主流?

    随着NGK主网的上线,NGK市场也备受关注.目前,NGK代币价格已经由初始价格0.0215美元涨到现在的0.86美元,代币价格上涨40倍!数字货币市场也已经将重点目光放到了NGK代币上,相信在不久的将 ...

  3. 数据库分表自增ID问题

    .................................................................................................... ...

  4. 移动端时间回显iphone出现的问题

    new Date(item.startTime.replace(/-/g, '/') dateFormat('hh:mm', new Date(item.startTime.replace(/-/g, ...

  5. 关于电脑硬盘的二三事(SATA接口)

    @ 目录 前言 接口分类 SATA3接口 机械硬盘 机械硬盘的特点和主要参数 西部数据机械盘分类 绿·蓝·黑盘 红盘 紫盘 金盘 希捷机械盘分类 酷狼 酷鱼 酷鹰 银河 SATA3接口的固态硬盘 固态 ...

  6. Java常用类:Scanner类

    一.简介 java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 二.创建对象 示例: Scanner scanner = new Scanner(Sy ...

  7. 多Excel文件内容查询工具。

    多Excel文件内容查询工具. 告别繁琐重复的体力劳动,一分钟干完一天的活. 码云 github 下载 当需要在多个Excel表格中查询需要的信息是,一个文件一个文件的去查询非常麻烦. 虽然有其他方法 ...

  8. 最近没事DIY了个6通道航模遥控器

    在网上买了个外壳,挖空后换成自己的电路版. 开机后图: 液晶屏是320x240的,没有合适的贴纸,直接就这么用了 遥控器的内部电路有点乱哈,没办法,低成本就只能全靠跳线了 还好都能正常工作. 接收器也 ...

  9. python自动化测试生成HTML报告

    自动化测试结果执行完毕后,需要对测试结果进行查看,今天就来讲一讲如何生成HTML报告首先下载HTMLTestRunner.py文件,放在python安装目录的Lib文件夹下https://pan.ba ...

  10. CCF(管道清洁):最小费用最大流

    管道清洁 201812-5 需要清洁的管道下界为1, 不需要清洁的管道下界为0, 可重复经过的管道上界为正无穷, 不可重复经过的管道上界为1. 这属于无源无汇的有容量下界的最小费用可行流.解决的方法就 ...