Python实现获取Linux操作系统基础信息
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,获取信息如下:主机名系统版本系统内核版本总内存CPU生厂商CPU总核心数服务器生厂商服务器序列号各网卡IP,MAC和网卡名信息实现代码如下:#!/usr/bin/python#coding:utf8f
千家信息网最后更新 2025年12月02日Python实现获取Linux操作系统基础信息
获取信息如下:
主机名
系统版本
系统内核版本
总内存
CPU生厂商
CPU总核心数
服务器生厂商
服务器序列号
各网卡IP,MAC和网卡名信息
实现代码如下:
#!/usr/bin/python#coding:utf8from subprocess import Popen, PIPEimport re#获取主机名,也可以使用 uname -n 命令获取def hostname(): hostname = Popen(["hostname"], stdout=PIPE) hostname = hostname.stdout.read() return hostname#获取操作系统版本def osversion(): with open("/etc/redhat-release") as f: osversion = f.read() return osversion#获取操作系统内核版本def oscoreversion(): oscoreversion = Popen(["uname", "-r"], stdout=PIPE) oscoreversion = oscoreversion.stdout.read() return oscoreversion#获取CPU相关信息,如果存在多种不同CPU,那么CPU型号统计的为最后一种型号,这种情况少见def cpuinfo(): corenumber = [] with open("/proc/cpuinfo") as cpuinfo: for i in cpuinfo: if i.startswith("processor"): corenumber.append(i) if i.startswith("model name"): cpumode = i.split(":")[1] return corenumber, cpumode #调用此函数需要用两个变量来接收参数 #获取内存相关信息def meminfo(): with open("/proc/meminfo") as meminfo: for i in meminfo: if i.startswith("MemTotal"): totalmem = i.split(":")[1] return totalmem#获取服务器硬件相关信息def biosinfo(): biosinfo = Popen(["dmidecode", "-t", "system"], stdout=PIPE) biosinfo = biosinfo.stdout.readlines() for i in biosinfo: if "Manufacturer" in i: manufacturer = i.split(":")[1] if "Serial Number" in i: serialnumber = i.split(":")[1] return manufacturer, serialnumber #调用此函数需要使用两个变量接收参数 #获取网卡信息,包括网卡名,IP地址,MAC地址def ipaddrinfo(): #定义存储格式,以网卡名为key,mac地址和ip地址为一个列表,这个列表又为这网卡名的value def add(dic, key, value): dic.setdefault(key, [ ]).append(value) ipinfo = Popen(["ip", "addr"], stdout=PIPE) ipinfo = ipinfo.stdout.readlines() dict1 = {} for i in ipinfo: if re.search(r"^\d", i): devname = i.split(": ")[1] continue if re.findall("ether", i): devmac = i.split()[1] add(dict1, devname, devmac) continue if re.findall("global", i): devip = i.split()[1] add(dict1, devname, devip) continue return dict1 if __name__ == "__main__": hostname = hostname() osversion = osversion() oscoreversion = oscoreversion() totalmem = meminfo() cpunumber, cpumode = cpuinfo() manufacturer, serialnumber = biosinfo() ipinfo = ipaddrinfo() print("%s:\t\t %s" %("主机名", hostname)), print("%s:\t %s" %("系统版本", osversion)), print("%s:\t %s" %("系统内核版本", oscoreversion)), print("%s:\t %s" %("总内存", totalmem)), print("%s:\t%s" %("CPU生厂商", cpumode)), print("%s:\t %s" %("CPU总核心数", len(cpunumber))) print("%s:\t%s" %("服务器生厂商", manufacturer)), print("%s:\t%s" %("服务器序列号", serialnumber)), for x in ipinfo: y = ipinfo.get(x) ip = y[1] mac = y[0] print("%s%s:\t %s\t%s" %("网卡", x, ip, mac))输出结果如下:
以上结果经CentOS 7和CentOS 6测试没有问题,其它系统使用可能会出现一些IO错误
系统
网卡
信息
版本
服务器
服务
厂商
地址
主机
内存
内核
操作系统
两个
函数
参数
变量
型号
序列
序列号
核心
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发是不是一定要英语好
湖州软件开发驻场代理公司
豪门足球风云手游数据库
来宾计算机网络技术培训
推广服务器
网络安全需要学习多长时间
网络安全法律相关书籍
交通银行软件开发中心领导
网络安全与网络攻防一样吗
gps对时服务器服务器
软件开发代号怎能管控
万方数据库检索
联盟最多人服务器
丽水软件开发费用
自己买服务器搭建邮箱
数据库期末上机考试
多部门联合网络安全执法
网络技术基础pk
国际电商数据库有哪些
自己架设服务器违法么
数据库三星note7
共筑网络安全守护绿色家园标语
h5离线数据库
地精数据库
提高网络技术的方法
数据库表无法导入的解决方法
网页怎么设置共用一个数据库
卧龙吟手游选服务器
济南科森网络技术有限公司
小型服务器和交换机辐射安全距离