How to get the system info with Python?
some of these could be obtained from the platform
module:
>>> import platform>>> platform.machine()'x86'>>> platform.version()'5.1.2600'>>> platform.platform()'Windows-XP-5.1.2600-SP2'>>> platform.uname()('Windows', 'name', 'XP', '5.1.2600', 'x86', 'x86 Family 6 Model 15 Stepping 6, GenuineIntel')>>> platform.system()'Windows'>>> platform.processor()'x86 Family 6 Model 15 Stepping 6, GenuineIntel'
#Shamelessly combined from google and other stackoverflow like sites to form a single functionimport platform,socket,re,uuid,json,psutil,loggingdef getSystemInfo(): try: info={} info['platform']=platform.system() info['platform-release']=platform.release() info['platform-version']=platform.version() info['architecture']=platform.machine() info['hostname']=socket.gethostname() info['ip-address']=socket.gethostbyname(socket.gethostname()) info['mac-address']=':'.join(re.findall('..', '%012x' % uuid.getnode())) info['processor']=platform.processor() info['ram']=str(round(psutil.virtual_memory().total / (1024.0 **3)))+" GB" return json.dumps(info) except Exception as e: logging.exception(e)json.loads(getSystemInfo())
Output Sample:
{ 'platform': 'Linux', 'platform-release': '5.3.0-29-generic', 'platform-version': '#31-Ubuntu SMP Fri Jan 17 17:27:26 UTC 2020', 'architecture': 'x86_64', 'hostname': 'naret-vm', 'ip-address': '127.0.1.1', 'mac-address': 'bb:cc:dd:ee:bc:ff', 'processor': 'x86_64', 'ram': '4 GB'}
The os module has the uname function to get information about the os & version:
>>> import os>>> os.uname()
For my system, running CentOS 5.4 with 2.6.18 kernel this returns:
('Linux', 'mycomputer.domain.user','2.6.18-92.1.22.el5PAE', '#1 SMP Tue Dec 16 12:36:25 EST 2008', 'i686')