testip / app.py
sigyllly's picture
Update app.py
ae57c40 verified
raw
history blame
1.85 kB
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)