一、前言
日常开发、设备授权、局域网调试、软件绑定设备场景,经常需要快速获取电脑网卡 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查询
系统专用查看网卡物理地址命令,无多余冗余信息:
getmac

3、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-xx
linux/mac mac 格式:xx:xx:xx:xx:xx:xx
结果包含:有线网卡、wifi、蓝牙、虚拟网卡、虚拟机网卡
纯标准库方案适合 windows 项目打包发布,无依赖报错
五、总结
1. 手动查看 mac:优先使用 getmac 命令,简洁高效;
2. 程序自动获取:windows 用标准库调用cmd,跨平台用 netifaces;
3. 所有代码均为最简实现,可直接嵌入设备授权、日志采集、系统信息工具。
以上就是windows和python获取mac地址的极简方法的详细内容,更多关于python获取mac地址的资料请关注代码网其它相关文章!
发表评论