一、前言
日常开发、设备授权、局域网调试、软件绑定设备场景,经常需要快速获取电脑网卡 MAC 地址。本文汇总Windows CMD原生命令和Python最简获取MAC代码,无冗余、可直接复制即用。
所有代码均为极简可用版本,适合快速集成、调试、项目部署。
二、CMD 命令获取 MAC 地址(无需软件)
Windows 自带三条常用命令,按需选择,输出干净高效。
1、ipconfig 查看全部网卡信息(最常用)
完整查看网卡、IP、物理地址(MAC)、DNS等信息:
ipconfig /all关键字段:物理地址即为 MAC 地址。注意必须要输入/all,直接ipconfig没有mac地址。
精简只输出 MAC:
ipconfig /all | findstr "物理地址"2、getmac 专属MAC查询
系统专用查看网卡物理地址命令,无多余冗余信息:
getmac3、wmic 适合脚本批量读取
适合批处理、程序调用,输出规整:
wmic nic where "MacAddress<>null" get MacAddress三、Python 最简代码获取本机 MAC 地址
提供两套方案:纯标准库(无需安装依赖)、跨平台极简库方案。
1、纯Python标准库(Windows专用、零依赖)
调用系统cmd解析MAC,无需pip安装任何包:
import subprocess import re def get_mac_list(): res = subprocess.check_output("getmac /fo table /nh", encoding="gbk") macs = re.findall(r"([0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2})", res) return list(set(macs)) if __name__ == "__main__": print("本机MAC地址列表:") print(get_mac_list())2、跨平台通用方案(Windows/Linux/Mac)
适配全平台,只需安装依赖:pip install netifaces
import netifaces def get_mac_list(): macs = set() for iface in netifaces.interfaces(): addrs = netifaces.ifaddresses(iface) if netifaces.AF_LINK in addrs: mac = addrs[netifaces.AF_LINK][0]['addr'] if mac != "00:00:00:00:00:00": macs.add(mac) return list(macs) print(get_mac_list())四、补充说明
Windows MAC 格式:
XX-XX-XX-XX-XX-XXLinux/Mac MAC 格式:
XX:XX:XX:XX:XX:XX结果包含:有线网卡、WiFi、蓝牙、虚拟网卡、虚拟机网卡
纯标准库方案适合 Windows 项目打包发布,无依赖报错
五、总结
1. 手动查看 MAC:优先使用getmac命令,简洁高效;
2. 程序自动获取:Windows 用标准库调用cmd,跨平台用 netifaces;
3. 所有代码均为最简实现,可直接嵌入设备授权、日志采集、系统信息工具。
专注Python自动化、机器视觉、工控调试、工具脚本开发