您的位置:首页 > 编程语言 > Python开发

python语言实现mac地址自加

2014-02-25 10:31 169 查看
【目的】
以配置文件中的mac地址为起始地址(形式为xx:xx:xx:xx:xx:xx),并根据步长设置实现mac自加,然后以该mac为源mac模拟报文。

实现步骤
第一步:将删除‘:’的影响,字符串转换成字节流;

import struct
def macs2a(mac):
dict = {'0':0, '1':1, '2':2, '3':3, '4':4,\
'5':5, '6':6, '7':7, '8':8, '9':9,\
'a':10, 'b':11, 'c':12, 'd':13, 'e':14, 'f':15}
mac = mac.lower()
tmp = mac.split(':')
res = ''
for i in range(len(tmp)):
uc = struct.pack('B', 16*dict[tmp[i][0]] + dict[tmp[i][1]])
res = res + uc
return res


第二步:将字节流表示的串进行自加,返回值为字节流可直接添加到模拟报文中对应位置。

import struct
def macAdd(mac, step = 1):
mac1,mac2 = struct.unpack("!HI", mac)
mac2 = mac2 + step
return struct.pack("!HI", a1, a2)
def macSelfAdd(mac, num = 0, step = 1):
macTmp = macs2a(mac)
for i in range(num):
macTmp = macAdd(macTmp, 1)
return macTmp


本文出自 “cizyzhang” 博客,请务必保留此出处http://cizyzhang.blog.51cto.com/1529108/1363106
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: