55 lines
1019 B
Python
Executable File
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)
|