File size: 1,852 Bytes
0f0582a
ae57c40
531d2e7
 
 
0f0582a
 
ae57c40
 
531d2e7
 
 
 
ae57c40
 
 
 
 
 
 
 
 
 
 
 
531d2e7
 
 
 
ae57c40
 
531d2e7
 
 
 
 
 
 
0f0582a
 
531d2e7
0f0582a
531d2e7
 
0f0582a
531d2e7
0f0582a
531d2e7
0f0582a
 
531d2e7
0f0582a
 
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
45
46
47
48
49
50
51
52
53
54
from flask import Flask
import requests
import psutil
import socket

app = Flask(__name__)

def get_private_ip_addresses():
    private_ip_addresses = []
    interfaces = psutil.net_if_addrs()
    for interface_name, interface_addresses in interfaces.items():
        for address in interface_addresses:
            if address.family == socket.AF_INET and not address.address.startswith('127.') and not address.address.startswith('169.254.'):
                private_ip_addresses.append((interface_name, address.address))
    return private_ip_addresses

def get_public_ip_address():
    try:
        response = requests.get('https://api.ipify.org')
        if response.status_code == 200:
            return response.text
        else:
            return "Failed to retrieve public IP address"
    except Exception as e:
        return str(e)

def get_system_info():
    system_info = {}
    system_info['Hostname'] = socket.gethostname()
    system_info['Private IP Addresses'] = get_private_ip_addresses()
    system_info['Public IP Address'] = get_public_ip_address()
    system_info['CPU'] = f"{psutil.cpu_count()} cores"
    mem_info = psutil.virtual_memory()
    system_info['RAM'] = f"{mem_info.total / (1024 ** 3):.2f} GB"
    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

@app.route('/')
def index():
    system_info = get_system_info()
    output = "System Information:\n"
    for key, value in system_info.items():
        if isinstance(value, list):
            output += f"{key}:\n"
            for item in value:
                output += f"    {item[0]}: {item[1]}\n"
        else:
            output += f"{key}: {value}\n"
    return output

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=7860)