Add localwhoami.py.
This commit is contained in:
parent
03d21d99c3
commit
094efa7bfd
1 changed files with 59 additions and 0 deletions
59
localwhoami.py
Normal file
59
localwhoami.py
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
import base64
|
||||||
|
import qrcode
|
||||||
|
import argparse
|
||||||
|
import flask; from flask import request
|
||||||
|
import socket
|
||||||
|
import sys
|
||||||
|
import io
|
||||||
|
|
||||||
|
def localwhoami(port):
|
||||||
|
site = flask.Flask(__name__)
|
||||||
|
my_ip = socket.gethostbyname(socket.gethostname())
|
||||||
|
print(my_ip)
|
||||||
|
my_url = f'http://{my_ip}:{port}'
|
||||||
|
url_qr = qrcode.make(my_url, border=0)
|
||||||
|
png_bytes = io.BytesIO()
|
||||||
|
url_qr.save(png_bytes, format='png')
|
||||||
|
png_bytes.seek(0)
|
||||||
|
png_bytes = png_bytes.read()
|
||||||
|
png_base64 = base64.b64encode(png_bytes).decode('ascii')
|
||||||
|
|
||||||
|
@site.route('/')
|
||||||
|
def root():
|
||||||
|
ip = request.remote_addr
|
||||||
|
if ip == '127.0.0.1':
|
||||||
|
ip = my_ip
|
||||||
|
return f'''
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
|
<style>
|
||||||
|
html{{height: 100vh;box-sizing: border-box;}}
|
||||||
|
*, *:before, *:after{{box-sizing: inherit;}}
|
||||||
|
body{{display:grid;grid-auto-flow:row;grid-gap:16px;justify-content:center;background-color:grey}}
|
||||||
|
div{{background-color: white; padding: 16px; border-radius: 16px;}}
|
||||||
|
</style>
|
||||||
|
<div>
|
||||||
|
<center>You are</center>
|
||||||
|
<center style="font-size:32pt; font-weight:bold">{ip}</center>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div><img src="data:image/png;base64,{png_base64}"/></div>
|
||||||
|
<center>{my_url}</center>
|
||||||
|
</div>
|
||||||
|
'''
|
||||||
|
site.run(host='0.0.0.0', port=port)
|
||||||
|
|
||||||
|
def localwhoami_argparse(args):
|
||||||
|
return localwhoami(port=args.port)
|
||||||
|
|
||||||
|
def main(argv):
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
|
||||||
|
parser.add_argument('port')
|
||||||
|
parser.set_defaults(func=localwhoami_argparse)
|
||||||
|
|
||||||
|
args = parser.parse_args(argv)
|
||||||
|
return args.func(args)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
raise SystemExit(main(sys.argv[1:]))
|
Loading…
Reference in a new issue