python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python获取MAC地址

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

作者:丞网科技

本文汇总了Windows和Python获取MAC地址的极简方法,Windows提供三条CMD命令,Python提供两种方案且两种方案均可获取有线/无线/虚拟网卡MAC,有需要的小伙伴可以参考下

一、前言

日常开发、设备授权、局域网调试、软件绑定设备场景,经常需要快速获取电脑网卡 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地址的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文