File size: 1,538 Bytes
531d2e7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import psutil
import socket

def get_ip_addresses():
    ip_addresses = []
    # Get all network interfaces
    interfaces = psutil.net_if_addrs()
    for interface_name, interface_addresses in interfaces.items():
        for address in interface_addresses:
            # Filter out loopback and link-local addresses
            if address.family == socket.AF_INET and not address.address.startswith('127.') and not address.address.startswith('169.254.'):
                ip_addresses.append((interface_name, address.address))
    return ip_addresses

def get_system_info():
    system_info = {}
    # Get the hostname
    system_info['Hostname'] = socket.gethostname()
    # Get the IP addresses
    system_info['IP Addresses'] = get_ip_addresses()
    # Get CPU info
    system_info['CPU'] = f"{psutil.cpu_count()} cores"
    # Get RAM info
    mem_info = psutil.virtual_memory()
    system_info['RAM'] = f"{mem_info.total / (1024 ** 3):.2f} GB"
    # Get disk usage info
    disk_info = psutil.disk_usage('/')
    system_info['Disk Usage'] = f"{disk_info.used / (1024 ** 3):.2f} GB / {disk_info.total / (1024 ** 3):.2f} GB"
    return system_info

def print_system_info():
    system_info = get_system_info()
    print("System Information:")
    for key, value in system_info.items():
        if isinstance(value, list):
            print(f"{key}:")
            for item in value:
                print(f"    {item[0]}: {item[1]}")
        else:
            print(f"{key}: {value}")

if __name__ == "__main__":
    print_system_info()