47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
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(),
|
|
"distro": platform.freedesktop_os_release(),
|
|
},
|
|
|
|
"ip-addresses": interfaces,
|
|
}
|
|
}
|