Для тех, кто хочет создать свои собственные MAC-адреса (хороший пример для сетевых адаптеров виртуальных машин), вы, вероятно, просто хотите это:
"02:00:00:%02x:%02x:%02x" % (random.randint(0, 255),
random.randint(0, 255),
random.randint(0, 255))
Или, если вы хотите сделать это в оболочке unix'y, это работает на многих:
printf '02:00:00:%02X:%02X:%02X\n' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256))
Это дает вам одноадресный MAC-адрес, который на 100% безопасен для использования в вашей среде и не нарушает чье-либо зарегистрированное пространство MAC-адресов.
Подробнее ...
Два нижних бита старшего байта (0x02) дают вам локально управляемый адрес одноадресной рассылки, который, вероятно, вам нужен, если вы запускаете stackoverflow для его генерации. :)
Если MAC-адрес не локально администрируется, это означает, что он должен быть «глобально уникальным». MAC-адреса в этой категории централизованно зарегистрированы в IEEE, и у вас должен быть уникальный OUI (Организационно-уникальный идентификатор), выданный вам IEEE. См. эту ссылку для глобального реестра значений OUI. Это значение OUI заканчивается в первых 3 байтах (или только в первых 22 битах).
MAC-адреса не так сложны, так что вам, вероятно, также стоит взглянуть на определение. В Википедии есть хороший .