如何从输入中接受mac地址并在python中打印下三个macaddress

2024-06-16 08:39:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉Python和编码。我的要求很简单。在

我会提示用户输入macaddress。输入后,我将打印接下来的3个mac地址。例如,如果输入的mac地址是00:00:00:00:00:00,我应该能够以以下格式打印接下来的3个mac地址 00:00:00:00:00:01 00:00:00:00:00:02 00:00:00:00:00:03

请帮忙


Tags: 用户编码mac地址格式我会macaddress
2条回答

您可以这样验证macaddress:

def isMAC48Address(inputString):
if inputString.count(":")!=5:
    return False
for i in inputString.split(":"):
    for j in i:
        if j>"F" or (j<"A" and not j.isdigit()) or len(i)!=2:
            return False
return True 

首先使用正则表达式验证您的MAC地址。如果格式正确,那么只需删除:字符,给您一个可以转换为整数的十六进制值。使用此整数计算接下来的3个值。对于每个整数,将值转换回十六进制字符串(前面有适当的零填充)。然后打印输出,将丢失的:字符放回:4

import re

mac_address = input('Please enter a MAC address: ')
valid = re.match('(?=[a-f0-9]{2}:){5}[a-f0-9]{2}', mac_address, re.I)

if valid:
    mac_as_int = int(mac_address.replace(':', ''), 16)

    for address in range(mac_as_int + 1, mac_as_int + 4):
        output = '{:012X}'.format(address)
        print('{}:{}:{}:{}:{}:{}'.format(output[0:2], output[2:4], output[4:6], output[6:8], output[8:10], output[10:12]))
else:
    print('Invalid MAC address')

这将正确处理一个值转移到下一个块的情况:

^{pr2}$

相关问题 更多 >