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

时间:2024-10-12 09:33:58

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到uuid5uuid1:MAC和时间戳算法uuid2:分布式计算环境DCE算法(python内没有)uuid3:名字空间和MD5散列值算法uuid4:随机数算法uuid5:名字空间的SHA-1散列值算法python中没有uuid2。我们要用到的就是uuid1OK,开始写。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.hexmac

教你怎么用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 renewmac = re.findall(r".{2}",mac)newmac#按2个字符进行分段之后,此时我们还需要添加一个-号,调用join方法mac = "-".join(newmac)mac此时可以看到,我们已经成功的把-号加进去了。print("您的MAC地址为:" + mac)所有代码可写成如下:import uuid,remac = 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物理地址
© 手抄报圈