游乐游手机版
首页/编程语言/文章详情

Windows与Python获取MAC地址的极简方法

时间:2026-08-06 06:16
Windows系统可通过ipconfig all、getmac或wmic命令获取MAC地址。Python提供标准库调用cmd解析及跨平台netifaces库两种方案,均能直接嵌入设备授权或系统信息工具。

一、前言

在日常开发中,设备授权、局域网调试、软件绑定设备等场景,经常需要快速获取电脑网卡的MAC地址(物理地址)。本文整理了一份Windows CMD原生命令和Python最简获取MAC的代码,没有冗余,直接复制即可使用。

所有代码均为极简可用版本,适合快速集成、调试及项目部署。

二、CMD 命令获取 MAC 地址(无需任何软件)

Windows自带三条常用命令,可按需选择,输出干净且高效。

1、ipconfig 查看全部网卡信息(最常用)

完整查看网卡、IP、物理地址(MAC)、DNS等信息:

ipconfig /all

Windows和Python获取MAC地址的极简方法

关键字段:物理地址 即为 MAC 地址。注意:必须输入 /all,直接输入 ipconfig 不会显示 MAC 地址。

精简输出(仅显示 MAC):

ipconfig /all | findstr "物理地址"

Windows和Python获取MAC地址的极简方法

2、getmac 专属 MAC 查询命令

系统专用查看网卡物理地址的命令,输出简洁,无多余信息:

getmac

Windows和Python获取MAC地址的极简方法

3、wmic 适合脚本批量读取 MAC

适用于批处理或程序调用,输出格式规整:

wmic nic where "MacAddress<>null" get MacAddress

Windows和Python获取MAC地址的极简方法

三、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())

Windows和Python获取MAC地址的极简方法

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和Python获取MAC地址的极简方法

四、补充说明

Windows 下的 MAC 地址格式:XX-XX-XX-XX-XX-XX

Linux / Mac 下的 MAC 地址格式:XX:XX:XX:XX:XX:XX

结果中包含:有线网卡、WiFi、蓝牙、虚拟网卡、虚拟机网卡等物理地址。

纯标准库方案适合 Windows 项目打包发布,无额外依赖,避免报错。

五、总结

1. 手动查看 MAC:优先使用 getmac 命令,简洁高效;

2. 程序自动获取:Windows 环境下用标准库调用 cmd,跨平台场景推荐 netifaces;

3. 所有代码均为最简实现,可直接嵌入设备授权、日志采集、系统信息工具等场景。

来源:https://www.jb51.net/python/368560yw2.htm
上一篇CentOS中GCC支持C++编程的详细指南 下一篇CentOS系统中PHP内存不足问题的解决方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
35岁转行网络安全:从经验复用到实战落地的可行性评估
编程语言 · 2026-10-10

35岁转行网络安全:从经验复用到实战落地的可行性评估

35岁转行网络安全并非不可行,但核心在于将过往经验转化为安全领域的差异化优势。本文从岗位匹配度、技能学习顺序、实战验证闭环、求职策略及常见误区五个维度,提供一套可执行的转行评估框架与行动指南,帮助读者理性判断投入产出比,避开无效学习陷阱。

网络安全行业前景分析:技术演进与市场机遇
编程语言 · 2026-10-10

网络安全行业前景分析:技术演进与市场机遇

围绕2026年网络安全行业的发展变化,从市场需求、技术演进、细分赛道和企业落地四个层面展开,帮助读者理解行业增长逻辑、识别重点技术方向,并建立评估市场机遇与风险的基本框架。 OWASP China +2 IDC +2

2026网络安全求职全景:从岗位拆解到实战作品集构建
编程语言 · 2026-10-10

2026网络安全求职全景:从岗位拆解到实战作品集构建

本文基于2026年网络安全行业招聘趋势,深入剖析安全运维、攻防渗透、云安全等核心岗位的技术栈差异与能力侧重。文章不仅梳理了从基础网络知识到高级攻防演练的学习路径,更提供了“以终为始”的求职策略:通过拆解JD反向验证技能缺口,并指导如何将CTF经历、HomeLab实验转化为具有说服力的项目作品集,帮助

2024安全攻防实战:从勒索软件到AI治理的破局与重构
编程语言 · 2026-10-10

2024安全攻防实战:从勒索软件到AI治理的破局与重构

2024年的网络安全已从单纯的技术对抗演变为业务连续性的生死博弈。本文基于ENISA、微软及世界经济论坛的最新报告,深入剖析勒索软件的“双重勒索”演变、身份凭证成为首要攻击面的现状,以及生成式AI带来的攻防不对称性。文章进一步拆解企业如何从被动防御转向“发现-保护-检测-响应-恢复”的闭环体系,重点

网站编程AI工具测评:提升开发效率的辅助软件推荐
编程语言 · 2026-10-10

网站编程AI工具测评:提升开发效率的辅助软件推荐

围绕网站开发中的实际需求,对AI编程辅助工具进行分类、操作体验与效果验证,帮助读者快速判断哪些工具真正能提升开发效率,并避开代码质量、隐私、安全与过度依赖等常见问题。