跳到内容
🛠️ToolsShed

MAC Address Generator

生成随机MAC地址,支持厂商OUI前缀、格式和数量选项。

关于此工具

MAC地址(介质访问控制地址)是分配给网络接口卡的唯一标识符,用于识别本地局域网上的设备。此工具可生成支持特定供应商OUI前缀、不同格式样式以及一次性创建多个地址的随机MAC地址。无论是测试网络配置、创建虚拟机还是模拟网络环境,MAC地址生成器都能节省时间,并确保您拥有有效的地址,而无需记住格式约定。

要使用该工具,请选择所需的MAC地址格式(冒号分隔、连字符分隔或点分隔表示法),可选择从下拉列表中选择供应商OUI前缀以限制特定制造商范围的地址,并指定要生成的地址数量。点击生成按钮,该工具将立即以您选择的格式生成有效的随机MAC地址。您可以复制单个地址或一次性复制所有生成的地址,用于网络测试、虚拟机配置或模拟场景。

此生成器对于在虚拟环境或网络模拟中工作的网络工程师、系统管理员和软件开发者特别有用。供应商OUI功能在测试场景中很有帮助,当您需要看起来来自特定制造商的地址时尤其如此。请注意,生成的地址是随机的,不会注册到任何真实设备;它们仅用于测试和开发目的。

常见问题

代码实现

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.