因为公司需要生成mac地址流水号,网上写的工具是用字符串拼接的方式,需要考虑很多情况会有遇到0缺位等问题,其实python本身支持大数字计算,所以只需要把用户输入的地址转换成int,直接for循环里面自增输出即可,然后再转换为16进制的字符串保存。以下是实现的代码
蓝牙、wifi,以及需要用到16进制流水号的地方都可以用到,然后我是用pyinstaller打包成exe文件发给产线使用的
# 这个是给产线生产用的,输入上一次最后的mac地址,自动会从下一个mac开始生成
# 如112233445565 则自动会+1从112233445566开始生成
# 然后输入需要生成的数量 如1000
# 会将号段中的每一个元素生成csv文件,以供审查
# 这个代码没有做mac规则判断,没有做异常处理,因为是我自己用的,如果需要给产线
# 工人使用的话需要防呆,考虑这些情况 加一下代码处理即可
start_mac=0x112233445566 #默认地址
print("请输入上一次最后的mac地址")
start_mac_str = input()
print("请输入要生成的数量")
numbers_str = input()
start_mac = int(start_mac_str,16) + 1 #从输入的mac地址的下一个开始,如果直接从输入地址开始的话去掉+1即可
number = int(numbers_str)
content = ""
for x in range(number):
content = content + str(hex(start_mac)).replace("0x","") + "\n"
print(str(x + 1) + "," +str(hex(start_mac)).replace("0x",""));
start_mac = start_mac + 1;
relative_path = 'mac.csv' #相对路径,会生成在这个py脚本的同路径下
# 打开文件进行写入
with open(relative_path, 'w', encoding='utf-8') as file:
file.write(content)
print("生成完毕,请查看mac.csv")
info = input()