Сначала используйте регулярное выражение для проверки вашего MAC-адреса.Если он в правильном формате, просто удалите символы :
, чтобы получить одно значение HEX, которое можно преобразовать в целое число.Используйте это целое число для подсчета следующих 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')
Это правильно обработает случай, когда значение переносится в следующий блок:
Please enter a MAC address: 00:00:00:00:00:00
00:00:00:00:00:01
00:00:00:00:00:02
00:00:00:00:00:03
Please enter a MAC address: 11:22:33:44:55:FE
11:22:33:44:55:FF
11:22:33:44:56:00
11:22:33:44:56:01