教你怎么用Python获得当前主机的MAC物理地址

2025-09-28 04:10:30

1、MAC地址是全球唯一的网卡物理地址,我们在windows上可以用getmac命令获得网卡的物理地址。如图

在Linux上则用ifconfig命令看到网卡的mac地址(HWaddr)。

教你怎么用Python获得当前主机的MAC物理地址

2、开始之前,需要说明一点:

要获得MAC地址有两种方式:第一种是调用系统的API,这就很麻烦了。windows、Linux、苹果各种系统的API各不相同。

第二种则是调用Python提供的uuid模块。

我们更倾向于第二种,跨平台,兼容Python2和Python3

我们要用到的是python内置模块uuid。

uuid模块主要有4个函数,uuid1、uuid3、uuid4、uuid5

在uuid中,原本有5个算法组成,分别是uuid1到uuid5

uuid1:MAC和时间戳算法

uuid2:分布式计算环境DCE算法(python内没有)

uuid3:名字空间和MD5散列值算法

uuid4:随机数算法

uuid5:名字空间的SHA-1散列值算法

python中没有uuid2。

我们要用到的就是uuid1

OK,开始写。

import uuid

导入uuid模块

教你怎么用Python获得当前主机的MAC物理地址

3、我们用一个mac变量保存我们的mac+时间戳

mac = uuid.uuid1()

mac

可以看到我们得到了5段数据(用-隔开),第一段是一个随机数,第二段、第三段第四段是我们的时间和日期(包括秒数),最后一段则是我们的MAC地址。

教你怎么用Python获得当前主机的MAC物理地址

4、type(mac)可以看到,这是一个uuid对象,我们可以通过uuid类提供的hex属性来获得我们要的5段十六进制数据。

type(mac)

mac = mac.hex

mac

教你怎么用Python获得当前主机的MAC物理地址

5、这时我们再来做一个处理:

我们只想要获得最后一段数据,也就是我们的MAC地址,MAC地址为12位的十六进制。

那我们只取最后12位,其余的数据丢弃,然后把字符串转换成大写。

mac = mac[-12:].upper()

mac

#取从倒数第12位开始取字符,到结束 upper转换成大写

此时我们看到,我们要的MAC地址已经成功获取了。

教你怎么用Python获得当前主机的MAC物理地址

6、此时还不够,我们还应该给我们这12位字符串进行字符处理。

我们希望每2位字符后添加一个-号。

例如FFFFFFFFFFFF变成FF-FF-FF-FF-FF-FF

此时我们用正则表达式处理一下即可。

import re

newmac = re.findall(r".{2}",mac)

newmac

#按2个字符进行分段之后,此时我们还需要添加一个-号,调用join方法

mac = "-".join(newmac)

mac

此时可以看到,我们已经成功的把-号加进去了。

print("您的MAC地址为:" + mac)

所有代码可写成如下:

import uuid,re

mac = uuid.uuid1().hex[-12:].upper()

mac = "-".join(re.findall(r".{2}",mac))

#或者省略为

mac = "-".join(re.findall(r".{2}",uuid.uuid1().hex[-12:].upper()))

教你怎么用Python获得当前主机的MAC物理地址

1、怎么关注?

在经验的右上角小编头像旁边点击关注,如图。

教你怎么用Python获得当前主机的MAC物理地址

2、怎么点赞?

请在经验左侧点赞,如图。

教你怎么用Python获得当前主机的MAC物理地址

3、怎么投票?

在经验的下方点击投票,如图。

教你怎么用Python获得当前主机的MAC物理地址

4、如果觉得小编写的还不错,可以动动鼠标把它分享给您的朋友。

如何分享,鼠标移动到右下角第一个按钮上,在弹出的选项中进行分享,如图。

不尽感激。

教你怎么用Python获得当前主机的MAC物理地址

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢