From ed16a494f231aeda06875b470f34545b5ff269ca Mon Sep 17 00:00:00 2001 From: Xeryus Stokkel Date: Wed, 2 Feb 2022 13:27:46 +0100 Subject: [PATCH] Display information about the host --- main.py | 25 +++++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 26 insertions(+) diff --git a/main.py b/main.py index 80351dc..aeda3b9 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,20 @@ +import platform +import socket + from fastapi import FastAPI, Header, Request +import netifaces app = FastAPI() @app.get("/") def root(request: Request): + interfaces = {} + for interface in netifaces.interfaces(): + interfaces[interface] = [] + for link in netifaces.ifaddresses(interface).values(): + for group in link: + interfaces[interface].append(group['addr']) + return { "method": request.method, "url": { @@ -18,4 +29,18 @@ def root(request: Request): "ip-address": request.client.host, "port": request.client.port, }, + "host": { + "hostname": platform.node(), + "fqdn": socket.getfqdn(), + "python": platform.python_version(), + + "os": { + "system": platform.system(), + "release": platform.release(), + "version": platform.version(), + "distro": platform.freedesktop_os_release(), + }, + + "ip-addresses": interfaces, + } } diff --git a/requirements.txt b/requirements.txt index d7f30e4..b5babae 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,6 +6,7 @@ gunicorn==20.1.0 h11==0.13.0 httptools==0.3.0 idna==3.3 +netifaces==0.11.0 pydantic==1.9.0 python-dotenv==0.19.2 PyYAML==6.0