srvid-beacon/srvid-beacond

55 lines
1019 B
Python
Executable File

#!/usr/bin/python3
# srvid-beacon v3.2.0 | (c) 2023 tjdev.de | www.tjdev.de
srvid_beacon_version = "3.2.0"
## IMPORTS ##
from datetime import datetime
from aiohttp import web
import socket
## MAIN ROUTE ##
async def main(request):
# get hostname
hostname = socket.gethostname()
# get time info
time_now = datetime.now()
time_utc = datetime.utcnow()
time_tz = time_now.astimezone()
time_utc_offset = time_tz.tzinfo.utcoffset(time_tz).total_seconds()
time_zone_name = time_tz.tzinfo.tzname(time_tz)
# build data object
data = {
"hostname": hostname,
"time": {
"local": time_now.timestamp(),
"utc": time_utc.timestamp(),
"utc_offset": time_utc_offset,
"timezone": time_zone_name
}
}
# send response
return web.json_response(
data=data,
headers={"Server": ("srvid-beacon v" + srvid_beacon_version)}
)
## RUN WEBSERVER ##
# get an app
app = web.Application()
# add routes
app.add_routes([
web.view("/", main)
])
# run webserver
web.run_app(app, host=None, port=11111)