Python使用UUID模块云服务器上获取MAC地址,重启后就不一样了
Python获得MAC地址代码
Python 全选
# 获得机器码
def getMID():
global MID
if MID is None:
computeName = os.environ['COMPUTERNAME']
mac = uuid.UUID(int=uuid.getnode()).hex[-12:]
MID = computeName + "_" + ("_".join(
[mac[e:e + 2] for e in range(0, 11, 2)]))
return MID
遇到问题,在云服务器上,重启系统之后,这个值会和重启前的值不一样,所以用它来代表计算机唯一性不太友好
python获取mac地址不一致,如何确保mac地址唯一?
在python中,我使用uuid模块获取了 mac地址(去掉前面的时间戳等,保留后12位)。 没有重启电脑的时候mac地址一致生成的都是一样的,重启电脑后就会生成新的mac地址。也在网上搜了大概是WLAN接口等问题,请问如何才能保证重启前后的mac地址一致?
参考答案1:
感觉应该换个思路,即使重启前后一样,万一用户手动修改了呢?还是有可能会变
参考答案2:
获取mac,获取了玩玩还行,你想拿它当电脑唯一标识就多余了,不谈可以手动修改的问题,有些网卡拔掉网线之后mac会变成空,如果是多网卡,你读到的不一定是哪块网卡的地址
Python获得mac地址的正确姿势
https://my.oschina.net/Tsybius2014/blog/812689
Python 全选
# pip install wmi
import wmi
class register:
def get_network_info(self):
network = []
s = wmi.WMI()
for nw in s.Win32_NetworkAdapterConfiguration(): # IPEnabled=0
if nw.MACAddress is not None:
network.append({
"MAC": nw.MACAddress, # 无线局域网适配器 WLAN 物理地址
"ip": nw.IPAddress
})
# print(":::Network info:", json.dumps(network))
return network
mac = register().get_network_info()
print(mac)
'''
[{
'MAC': '00:E0:4C:43:C3:73',
'ip': ('192.168.0.140', 'fe80::3509:7075:bd47:55e0')
}, {
'MAC': '00:50:56:C0:00:01',
'ip': ('192.168.26.1', 'fe80::ac:73f1:bde9:6692')
}, {
'MAC': '00:50:56:C0:00:08',
'ip': ('192.168.68.1', 'fe80::dc71:53f7:a8ef:e57b')
}, {
'MAC': '4E:95:4B:D6:74:87',
'ip': ('10.147.20.229', 'fe80::508c:d831:955e:b6dc')
}, {
'MAC': '22:AF:20:52:41:53',
'ip': None
}, {
'MAC': '22:AF:20:52:41:53',
'ip': None
}, {
'MAC': '26:0D:20:52:41:53',
'ip': None
}, {
'MAC': '00:FF:07:09:B6:1B',
'ip': None
}, {
'MAC': '00:FF:07:27:88:8B',
'ip': None
}]
'''
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 管理员