思路是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)

最新文章

  1. FastDFS 安装及使用
  2. tornado 学习笔记8 模板以及UI
  3. javaScript代码执行顺序
  4. python install_opener用法
  5. Java 多线程处理[全]
  6. 新浪微博的XSS漏洞攻击过程详解
  7. python 对比图片相似度
  8. 网页转图片--- html2canvas截图
  9. sass中文注释的解决方法和一些简单用法
  10. hive表分区操作
  11. hive SQL COALESCE 函数
  12. tomcat Failed creating java C:\Program Files\Java\jre6\bin\client\jvm.dll %1 不是有效的 Win32 应用程序。
  13. Linux下的微秒级别的定时器
  14. PHP SFTP应用(二)
  15. TCP的那些事-2
  16. http://blog.csdn.net/a9529lty/article/details/6454156
  17. Java实验五网络编程与安全
  18. webpack新版本4.12应用九(配置文件之多种配置类型)
  19. World、Excel利用流下载
  20. SRA数据转成fastq

热门文章

  1. Generator function vs Async/Await
  2. Versatile Python 3.x
  3. ts 索引签名 无视多余的属性类型
  4. Masterboxan INC :个股出现疯涨,投资者需警惕股市泡沫
  5. HGAME apache
  6. pytorch中修改后的模型如何加载预训练模型
  7. (十一) 数据库查询处理之连接(Join)
  8. CVer想知道的都在这里了,一起分析下《中国计算机视觉人才调研报告》吧!
  9. 重量级锁synchronized的优化----自旋锁、自适应自旋锁、锁消除、锁粗化
  10. 从HashMap面试聊聊互联网内卷