linux 通过python获得服务器唯一机器号

目录

          • 1. 需求
          • 2. 解决
            • 2.1. 不可行方案
            • 2.2. 可行方案

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())

你可能感兴趣的:(python)