1. 需求

需要做校验,使得代码仅在特定服务器上运行。这就需要获得唯一标志该机器的机器码。

2. 解决
2.1. 不可行方案

网上大部分说通过uuid模块获得设备的MAC地址。但是该MAC地址在python代码重新运行后会变化,无法唯一标志。

2.2. 可行方案

采用dmidecode命令获取特定序列号或者UUID。

关于dmidecode命令的详细说明,可参考博客《(总结)Linux下获取详细硬件信息的工具:Dmidecode命令详解》

这里,我选择机器的主板序列号作为唯一标志码,获取命令如下

sudo dmidecode -s baseboard-serial-number

python代码如下

import os

# 获得主板sn号
def getSN():
	sn = os.popen("sudo dmidecode -s baseboard-serial-number | awk '{print $0}'").readlines()
	return sn[0].strip()

print("当前机器的主板序列号:", getSN())
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐