当前位置:新闻中心 > 技术干货

使用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() # 运行主函数

执行结果如下:

声明:该文章仅用于学术交流

感兴趣的小伙伴

扫描下方二维码