🛠️ToolsShed

MAC Address Generator

Generate random MAC addresses with vendor OUI prefix, format, and quantity options.

常见问题

代码实现

import random
import re

def generate_mac(format="colon", case="upper", uaa=True, multicast=False, oui=None):
    """Generate a random MAC address"""
    if oui:
        parts = [int(x, 16) for x in re.split(r"[:\-]", oui[:8])][:3]
    else:
        b0 = random.randint(0, 255)
        b0 = (b0 & 0xFE) if not multicast else (b0 | 0x01)  # unicast/multicast
        b0 = (b0 & 0xFD) if uaa else (b0 | 0x02)             # UAA/LAA
        parts = [b0, random.randint(0, 255), random.randint(0, 255)]

    parts += [random.randint(0, 255) for _ in range(3)]
    hex_parts = [f"{b:02x}" for b in parts]

    if format == "colon":
        mac = ":".join(hex_parts)
    elif format == "hyphen":
        mac = "-".join(hex_parts)
    else:
        mac = "".join(hex_parts)

    return mac.upper() if case == "upper" else mac

# Generate 5 random MAC addresses
for _ in range(5):
    print(generate_mac())

# With Apple OUI prefix
print(generate_mac(oui="00:1A:E3"))

# Locally administered
print(generate_mac(uaa=False))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.