使用Python多参数程序生成所需MAC地址
来源:天融信教育
在日常的测试过程中,有时需要使用多个MAC地址信息来构成测试数据,并且有可能会对MAC地址的构成有要求,有鉴于此,本人使用python语言编写了一段小程序来解决此问题。
描述如下:
1. 运行时带-n和-h短格式参数,也可换为 --no 和 --hs长格式参数
2. -n参数代表需要产生的MAC地址的个数
3. -h参数代表MAC地址信息的限定,不可省略。如:0A,F2-D3
4. 产生结果会在屏幕上显示,并写入mac.txt文件中
代码如下:
import string,random,getopt, sys
import random
import getopt
import sys
num = 0 #产生MAC地址的数量
hexStr = '' #MAC地址信息中的限定部分
ran=0 #根据hexStr所产生的内部循环处理变量
try:
options, args = getopt.getopt(sys.argv[1:], "n:h:", ["no=","hs="])
except getopt.GetoptError as err:
print('Error:')
print(' ', str(err))
sys.exit(2)
for opt, value in options: #通过循环遍历,从参数列表中找出相应的参数和数值
if opt in ("-n", "--no"):
num = int(value)
elif opt in ("-h", "--hs"):
hexStr = value
if len(hexStr) == 2: #判断MAC限定信息,从而决定产生几组所需的信息
ran=5
elif len(hexStr) == 5:
ran=4
elif len(hexStr) == 8:
ran=3
elif len(hexStr) == 11:
ran=2
elif len(hexStr) == 14:
ran=1
else:
print('Mac地址限定参数不正确!') #若MAC限定信息缺失或不正确则退出
sys.exit(2)
def create_MAC(): # 随机生成一个MAC函数
MAC = hexStr #修改此处可调整MAC地址中的限定,‘01-AA’’
hex_num = string.hexdigits # 显示所有的16进制的数;
for i in range(ran): #循环次数是:6-MAC变量中的十六进制段数
n = random.sample(hex_num,2) # 从某串字符中随机选取2个数出来,返回值为列表
sn = '-' + ''.join(n).upper() # 拼接列表中的内容,并将小写字母转换为大写
MAC += sn
return MAC
def main(): # 主函数,随机生成MAC地址
with open('mac.txt','w') as f: # 以写的方式打开文件
for i in range(num): #根据参数的值循环生成所需信息
mac = create_MAC()
print(mac)
f.write(mac+'\n') # 每生成一个MAC地址,存入文件中,注意换行
main() # 运行主函数
执行结果如下:
声明:该文章仅用于学术交流
感兴趣的小伙伴
扫描下方二维码