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.