MAC 地址格式转换工具

同一个 MAC 在不同地方写法不一样:Windows 用 -,Linux 用 :,Cisco 用 .,配置文件无分隔符……一个工具全搞定。

9 种 MAC 格式

格式 示例 常见场景
Windows 风格 00-1B-63-AA-BB-CC Windows 注册表、网络适配器属性
Linux/Unix 风格 00:1B:63:AA:BB:CC ifconfigip link 输出
Cisco 风格 001B.63AA.BBCC 交换机/路由器配置
无分隔符 001B63AABBCC 配置文件、脚本
Hex Dump 0x00 0x1B 0x63 0xAA 0xBB 0xCC 程序调试、十六进制编辑器
十进制整数 117636250572 数据库存储、API 标识

外加大写/小写两个变体。

工具演示

MAC 转换

输入 00:1B:63:aa:bb:cc

✅ Windows 风格:    00-1B-63-AA-BB-CC / 00-1b-63-aa-bb-cc
✅ Linux 风格:      00:1B:63:AA:BB:CC / 00:1b:63:aa-bb-cc
✅ Cisco 风格:       001B.63AA.BBCC
✅ 无分隔符:        001B63AABBCC / 001b63aabbcc
✅ Hex Dump:        0x00 0x1B 0x63 0xAA 0xBB 0xCC
✅ 十进制整数:       117636250572

使用场景

场景 1:Windows 配置文件 → Linux 脚本

Windows 注册表里的 00-1B-63-AA-BB-CC 要写到 Linux 防火墙规则:

# Windows 注册表
MacAddress=00-1B-63-AA-BB-CC

# Linux iptables
iptables -m mac --mac-source 00:1B:63:AA:BB:CC -j DROP

工具直接转换。

场景 2:日志里的 MAC → 数据库查询

WAF 日志显示 Mac=001B.63AA.BBCC(Cisco 风格),要查设备库:

SELECT * FROM devices WHERE mac_int = 117636250572;

→ 工具直接出十进制。

场景 3:抓包分析

Wireshark 显示 MAC = 001b63aabbcc,要查厂商:

001B63 → Apple, Inc.

→ 工具同时给你厂商查询 + 格式转换。

场景 4:批量生成 MAC

Python 脚本里批量生成虚拟 MAC(VM 用):

import random
for i in range(100):
    mac = ':'.join([f'{random.randint(0, 255):02X}' for _ in range(6)])
    # 转无分隔符存入数据库
    print(mac.replace(':', '').upper())

核心实现

import re

def format_mac(mac, sep=':'):
    s = re.sub(r'[^0-9A-Fa-f]', '', mac).upper()
    return sep.join(s[i:i+2] for i in range(0, 12, 2))

def mac_to_int(mac):
    return int(re.sub(r'[^0-9A-F]', '', mac.upper()), 16)

注意事项

⚠️ MAC 地址是 48 位整数,不是 32 位(IPv4)或 128 位(IPv6)。

最大 MAC:FF:FF:FF:FF:FF:FF = 281474976710655(约 281 万亿)。

⚠️ 多播 MAC 的末位是 1

01:00:5E:XX:XX:XX ← IPv4 多播地址映射
33:33:XX:XX:XX:XX ← IPv6 多播地址映射

⚠️ 本地管理地址(U/L 位 = 1)的 MAC手动生成的:

02:42:AC:11:00:02 ← Docker 默认
52:54:00:12:34:56 ← QEMU/KVM 默认
00:0C:29:XX:XX:XX ← VMware 默认

在线使用

👉 MAC 格式转换

想查厂商?用 MAC 地址查询

速记口诀

Windows: -  (杠)
Linux:   :  (冒号)
Cisco:   .  (点) + 三组

📱 扫码右侧二维码关注「网英的日常」,更多数通工程师实用工具持续更新!