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": { "url": request.url._url, "scheme": request.url.scheme, "hostname": request.url.hostname, "port": request.url.port, "path": request.url.path, }, "headers": request.headers, "client": { "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(), }, "ip-addresses": interfaces, } }